アキラのITメモ:MIME::Parserの使用例

IT関係、技術関係のメモです。

MIME::Parserの使用例

前のエントリでmaildropを使った受信メールをスクリプトに渡すところまで書いたのですが、ここではメールを整形、他のアドレスに転送するスクリプトを公開してみます。といってもPerl初心者の書いたものですので信用しないでください。

ここではMIME::Parserというモジュールを使いました。さくらのレンタルサーバーではデフォルトで入っているようです。以下のスクリプトは受信したメールをSTDINから読み込み、整形後、forward@xxx.xxxというアドレスに送るプログラムです。携帯に送ったり、メール投稿のできるブログに送ったり、いろいろできます。ブログに送るのなら、サニタイジング処理を入れてもいいかもしれません。

#!/usr/bin/perl
#
# メールを整形してフォワードする簡易スクリプト
# 
use MIME::Parser;

# 設定
$sendmail = '/usr/sbin/sendmail';
$fwd_address = 'foward@xxx.xxx';

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

# ヘッダ読み出し
my $from = $entity->head->get('From');
my $subject = $entity->head->get('Subject');
chomp $from;
chomp $subject;

# 本文読み出し
my $body = $entity->bodyhandle->as_string;

# 適当に整形するコードを書く
$body =~ s/foo/bar/g; 

# メールを送る
open(OUT,"| $sendmail -t -i");
print OUT "From: " . $from . "\n";
print OUT "To: " . $fwd_address . "\n";
print OUT "Subject: [fwd] " . $subject . "\n";
print OUT "Content-Transfer-Encoding: 7bit\n";
print OUT "Content-Type: text/plain; charset=\"iso-2022-jp\"\n\n";
print OUT $body;
close(OUT);

カテゴリ: Perl 投稿日: 2007年01月20日 00:01
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/445

コメント

利用例が実用かつ簡潔でとてもありがたいです。
こういった利用例を提示してくれているサイトは多くありますが、コピーしてとりあえずテストってやってみたいときに前処理をしておかないと動かないサンプルが多い中とてもありがたいです。

投稿者 ZOP : 2007年07月20日 11:02

コメントを投稿





カテゴリ「Perl」内の記事

サイト内検索

カテゴリ

最近のエントリ

関連商品

アバウト

Atom RSS
Powered by MT3.33-ja
合計:total
今日:today 昨日:yesterday