ホーム » スタッフ » 斉藤徹 » Mail::Internet モジュールの使い方

2006年1月
« 12月   2月 »
1234567
891011121314
15161718192021
22232425262728
293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

Mail::Internet モジュールの使い方

メールデータの処理をしたいけど、モジュールで簡単に扱うために… 動作確認のためのサンプルプログラム。 以前は、正規表現やら状態遷移やら考えながら、 えっちら・おっちらと処理してたけど、モジュール使うと簡単ね。

#!/usr/bin/perl
use Jcode ;
use Mail::Internet ;
use Mail::Address ;
use MIME::Words ;
# メールヘッダ・本体を標準入力から読み込む
$mail = new Mail::Internet \*STDIN ;
$head = $mail->head->header_hashref ;
# From ヘッダを解析
@from = Mail::Address->parse( $head->{From}[0] ) ;
print "From: ".$from[0]->address()."\n" ;
# Subject を解析・デコード
$subject = MIME::Words::decode_mimewords( $head->{Subject}[0] ) ;
Jcode::convert( \$subject , "euc" ) ;
print "Subject: $subject\n" ;
# メールヘッダの表示
$c = 0 ;
foreach $key ( keys %{$head} ) {
$c++ ;
$d = 0 ;
foreach $item ( @{$head->{$key}} ) {
print $c.":".++$d.":" ;
print $key." => ".$item ;
}
}
# メール本文の表示
$c = 0 ;
foreach $line ( @{$mail->body} ) {
print ++$c.":" ;
Jcode::convert( \$line , "euc" ) ;
print $line ;
}