« fml で quoted-printable なメールを扱うには? | メイン | fml の迷惑メール対策 »
fml で quoted-printable なメールを扱うには?その2
2008年06月03日〜fml〜
昨日は、mimer.pl を利用した方法を書きました。
ただ、mimer.pl を使用した場合、変換時にエラーが発生すると、標準出力にエラーを吐き出します。エラーは、= の文字の後に、想定される半角英数字2文字が続かない場合に出るようです。
multipart メールは、基本的にどんなパートが存在しても良いわけですから(メールソフトが許す限りですが)、本文の異なるエンコード部分に = が書かれていないとも限りません。
そこで、エラー処理を止めて、可能な限りデコードするよう変更してみました。
$START_HOOK =q#
if($Envelope{'Body'}=~/^\s*Content-Transfer-Encoding:\s*quoted-printable/im){
$Envelope{'Body'} =~ s/=\r\n//g;
$Envelope{'Body'} =~ s/=\n//g;
$Envelope{'Body'} =~ s/=\r//g;
$Envelope{'Body'} =~ s/=([0-9A-Fa-f]{2})/pack("C",hex($1))/ge;
&DEFINE_FIELD_FORCED("x-strip-mime","quoted-printable");
}else{
&DEFINE_FIELD_FORCED("x-strip-mime","pass");
}
#;
これでもうちでは無事動いていますので、たぶん大丈夫でしょう。
トラックバック
このエントリーのトラックバックURL:
http://www.elgrand.org/mt-ctl/mt-tb.cgi/766