perlのMIME::Liteならメール送信はすぐ書ける。その2
メール送信のモジュールMIME::Liteを利用してそういえばこんなの作りました。のコード。
PHPMailerと比較してPerlは結構コーディングが楽だと感じました。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
何かぼんやりと勉強会をしたいなぁと思っています。
ネタ募集中です。
関西で開催する予定ですので、関西の方はお楽しみに!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
PHPMailerと比較してPerlは結構コーディングが楽だと感じました。
#!/usr/bin/perl # # $Id: perlmailer.pl 35560 2010-05-29 01:08:30Z watanabefg $ # use strict; use warnings; use Encode; use utf8; use MIME::Lite; use File::Basename; my $mail_from = $ENV{'MAIL_FROM'}; my $mail_to = $ENV{'MAIL_TO'}; my $mail_subject = decode('shiftjis', $ENV{'MAIL_SUBJECT'}); my $mail_body = decode('shiftjis', $ENV{'MAIL_BODY'}); my @mail_attach = (); my $message = MIME::Lite->new( From => $mail_from, To => $mail_to, Subject => encode('MIME-Header-ISO_2022_JP', $mail_subject), Type => 'multipart/mixed', ); # メール本文 $message->attach( Type => 'text/plain; charset="ISO-2022-JP"', Data => encode('ISO-2022-JP', $mail_body), ); # 添付ファイルを取得 if ($ENV{'MAIL_ATTACH'} ne ""){ @mail_attach = split(/\,/, $ENV{'MAIL_ATTACH'}); } if ($#mail_attach != -1){ # 添付をつけて送信 foreach my $attach_file (@mail_attach){ my $file_name = basename($attach_file); $message->attach( Type => 'application/octet-stream', Path => $attach_file, Filename => $file_name, Disposition => 'attachment', ); } } $message->send('smtp', 'xxxx'); 1; __END__ メールを送信します。 以下のようにシェル内でMAIL_FROM, MAIL_TO, MAIL_SUBJECT, MAIL_BODYの指定が必要です。 シェルはshiftjisで書かれていることを想定しています。 MAIL_ATTACHは適宜つけてください。(, つきで複数指定が可能です。)
ちなみに改行は対応していません。あしからず。 sample) # メール送信モジュールを実行 setenv MAIL_FROM xxxxxxxxxxx setenv MAIL_TO xxxxxxxxxxx setenv MAIL_SUBJECT "日本語もいけるよ" setenv MAIL_BODY "日本語もいけるよ" setenv MAIL_ATTACH /tmp/test_$PID
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
何かぼんやりと勉強会をしたいなぁと思っています。
ネタ募集中です。
関西で開催する予定ですので、関西の方はお楽しみに!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
コメント
コメントを投稿