アキラの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
Trackback URL: http://akira-site.net/cgi-bin/mt/mt-tb.cgi/445
コメント
利用例が実用かつ簡潔でとてもありがたいです。
こういった利用例を提示してくれているサイトは多くありますが、コピーしてとりあえずテストってやってみたいときに前処理をしておかないと動かないサンプルが多い中とてもありがたいです。
投稿者 ZOP : 2007年07月20日 11:02
コメントを投稿
カテゴリ「Perl」内の記事
サイト内検索
カテゴリ
- Linux
- Linux Tips [14]
- Linux ソフトウェア [3]
- Web技術
- (X)HTML/CSS [4]
- JavaScript [1]
- MovableType [7]
- その他 [3]
- 各種API [3]
- 各種ツール [4]
- Windows
- Win Tips [3]
- Win ソフトウェア [6]
- コネタ [7]
- プログラミング
- 機器 [4]