IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

.forward で受信メールをどうこうする

書いとかないと忘れそうなのでメモメモ

.forward ファイルにコマンドを書いておく

"| exec /Users/amachang/hoge.pl"

で、そのメールのデータをオブジェクトにする

use MIME::Parser;

my $parser = MIME::Parser->new;
$parser->output_to_core;
my $entity = $parser->parse(\*STDIN);

オブジェクトからそれぞれのデータを取り出す

use Encode;

# Subject
my $subject = decode('MIME-Header', $entity->head->get('Subject'));

# From
my $from = do {
    $entity->head->get('From') =~ /([^<]+\@(?:[-a-z0-9]+\.)*[a-z]+)/;
    $1
};

# Body
my $body = decode('ISO-2022-JP', $entity->bodyhandle->as_string);

簡単だけに忘れそう