multipart/mixedのメールが複数分割されて送られてきました。メール本文は空っぽで、全て添付ファイルになっていました。
どうやら、outlook expressで送信した場合に起こる現象のようですが、こちらで読めないので困ってしまいます。
中身を見ると、テキストの本文に続き、
Content-Type: application/octet-stream;
Content-Transfer-Encoding: base64
となっていて、この部分以降に怪しげな文字列が延々と続いています。
この部分以降は、base64でエンコードされたバイナリ添付ファイルなわけです。
この部分を取り出してエンコードを解けば(デコードすれば)、添付されていたファイルを復活できるはずです。
で、perlの出番です。
Step1:base64部分だけのファイルを作る
> ls
xxx[1_3].dat
xxx[2_3].dat
xxx[3_3].dat
> cat *.dat > abc.dat
> vim abc.dat
#ここで、必要な部分(怪しげな文字列の部分)以外を削除
Step2: perlでデコード
Perlのソース
#!/usr/bin/perl -w
use MIME::Base64;
binmode STDOUT,'raw';
binmode STDIN,'raw';
while(<>){
print decode_base64($_);
}
楽勝だね。
ツイート