うまいぼうぶろぐ

linuxとhttpdとperlのメモ

メールヘッダからenvelope-toを抜き出す方法がわからない

ToヘッダならMIME::Parserで

use MIME::Parser;
my $entity = $parse->parse(\*STDIN);
my $head   = $entity->head;
my $to     = $head->get('to');

とかすればいいことはわかった。でもenvelope-toはどうやるんだろう。

my @all_received = $head->get('Received');

とかでReceivedヘッダをごっそり取って、正規表現とかで適当に取るしかないのかな。
たいていの場合、Receivedヘッダに

Received: from 192.168.0.1 (hoge [192.168.0.1])
	by hoge (Postfix) with ESMTP id 0000000001
	for <to@address>; Sun, 12 Apr 2009 17:00:53 +0900 (JST)

こんなん書いてるからfor なにがしの行からぶっこ抜くとか。