この記事は盛大に誤爆しております。実際には、Email::FilterもEmail::SimpleもきちんとFromヘッダを取り回してくれますので、ご安心ください。
詳細は、この記事および、この実証記事をご確認ください。m(_ _)m
メールに自動返信するプログラムを書く際、Email::Filter-1.032やEmail::Simple-2.004を使ったりするんだけど、こいつらではうまく取得できないFrom値が存在するみたい。
例えば、SoftBankの705SHから送信されたメールのFrom欄。
<****************@softbank.ne.jp>
こういう風に、<〜>で囲われていて、かつ表示名称(※)が無いものは、これらのモジュールだとうまく取得できない。
以下、実証コード。
#!/usr/bin/perl
use Email::Filter;
use Data:Dumper;
my $email = Email::Filter->new;
my $log = '/tmp/email_filter.log';
open my $LOG, '>>', $log;
print $LOG Dumper $email->header( 'From' );
close $LOG;
これをpostfixで受けれるように、/etc/aliasesを編集。
test: "|/path/to/script.pl"
で、実際にメールを食わせてログ見てみると、
$VAR1 = '';
あまり暇が無いので、取り敢えずメモに止めておく。
※表示名称ってのはこういうのです。
山田 三郎 <****************@softbank.ne.jp>
(正式名称じゃないです。きっと。)