eml ファイルのメールを Gnus で From とかそのまま Gmail に再送信
Power Automate for Desktop でメールを処理するフローをテストする際、お客様からもらった eml ファイルを自分の Gmail に、転送ではなく、From や To をそのままで再送信して動作確認をしました。
ちょっとややこしかったので、メモとして残しておきます。
まず、再送信できないMUA(いわゆるメールクライアント)や、eml ファイルをインポートできないMUAがありますので、eml ファイルをインポートでき、再送信できるMUAを選択する必要があります。
私は Gmail 以外に Gnus を使っていたので、Gnus で再送信することにしました。
まず、Gnus に eml ファイルをメールとして取り込みます。Maildir 形式のフォルダに保存して、Gnus の nnmaildir メールバックエンドを使って取り込みます。
$HOME/Maildir をトップディレクトリとして使用します。eml ファイルは「eml」フォルダに入れることにします。
$ mkdir -p ~/Maildir/eml
$ cd ~/Maildir/eml
$ mkdir tmp new cur
eml フォルダができたので、/tmp/eml/ にコピーしておいた emlファイルを、$HOME/Maildir/new にコピーします。
Maildir 形式では、メールは tmp → new → cur と移動していきますが、new のメールはMUA が新規メールとして取り込んで、cur に移動します。
new には一意の名前のファイルならなんでもいいとのことなのですが、eml ファイルをそのまま置いても Gnus では取り込んでもらえなかったので、ランダムな数字のファイルに置き換えました。
$ for i in /tmp/eml/*.eml; do cp -i $i ~/Maildir/eml/new/$RANDOM; done
ファイル名について、詳しくは「Using maildir format」などをご覧ください。
次は Gnus の設定です。以下を .gnus.el に加えます。
(add-to-list 'gnus-secondary-select-methods
'(nnmaildir ""
(directory "~/Maildir")))
Gnus を起動し、Group バッファで「^」をタイプし、Server バッファへ入ります。
{nnmbox:} (closed)
{nnfolder:archive} (opened)
{nnmbox:mbox} (closed)
{nndraft:} (opened)
{nnml:} (opened)
{nnmaildir:} (opened)
追加した nnmaildir にカーソルを置き、Enter をタイプすると、eml グループが表示されますので、「u」で購読(subscribe)状態にします。
「q」を2回タイプし、Group バッファに戻ってみると、eml グループができています。
0: nnfolder+archive:sent.2024-08
4: nnmaildir:eml ←これ
0: nnml:mail.misc
0: nndraft:drafts
あとは普通に読むだけです。
P.S
Gnus で multipart/mixed なメールを開くと、iso-2022-jp の text/plain パートが文字化けします。
もし、直し方をご存じの方がいらっしゃいましたら、教えてください。