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
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
何かぼんやりと勉強会をしたいなぁと思っています。
ネタ募集中です。
関西で開催する予定ですので、関西の方はお楽しみに!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
コメント
コメントを投稿