パソコン鳥のブログ

アクセスカウンタ

zoom RSS Perl で添付ファイル付きメールを送信する

<<   作成日時 : 2014/12/18 21:20   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Perl でメールを送る関数です。
日本語対応で、添付ファイルを送信できます。


メール送信サブルーチン


SendAttachedMail()

メールを送信します。
添付ファイルも送信できます。
題名、本文、添付ファイル名とも日本語対応です。

書式:
SendAttachedMail( 差出人 , 宛先 , 題名 , 本文 , 添付ファイル1のパス , 添付ファイル2のパス , ... );


SendAttachedMailと使用方法のサンプルです。
下記のコードをUTF-8 で保存して使用して下さい。


use Email::MIME;
use IO::All;
use File::MMagic::XS;
use utf8;
use File::Basename;
use Email::Sender::Simple qw(sendmail);


sub SendAttachedMail {
my @parts;

my $m = File::MMagic::XS->new();

push @parts ,
Email::MIME->create(
attributes => {
content_type => "text/plain",
charset => 'ISO-2022-JP',
encoding => '7bit'
},
body_str => $_[3]
);

for( my $i = 4 ; $i < @_ ; $i++ ){
push @parts ,
Email::MIME->create(
attributes => {
content_type => $m->get_mime( $_[$i] ),
encoding => 'base64',
name => Encode::encode( 'ISO-2022-JP', basename($_[$i]) ),
},
body => io( $_[$i] )->binary->all,
);
}

my $email = Email::MIME->create(
header => [
From => Encode::encode( 'MIME-Header-ISO_2022_JP', $_[0] ),
To => Encode::encode( 'MIME-Header-ISO_2022_JP', $_[1] ),
Subject => Encode::encode( 'MIME-Header-ISO_2022_JP', $_[2] )
],
parts => [ @parts ],
);

sendmail($email);

}


SendAttachedMail(
'"送信元" <user001@example.com>',
'"宛先" <person6@example.net>' ,
'題名',
"本文1行目\n2行目\n3行目",
"平仮名.pdf" ,
"test.tar.gz" );






なお、実行時に

replaced vertical whitespace in From header with space; this will become fatal in a future version at XXX.pl line YYY.

のような表示が出ることがあります。

これは
Encode::encode( 'MIME-Header-ISO_2022_JP', $_[0] )
の結果に改行文字が入ることがあり、その改行文字を空白に変換されたことを示します。
これにより正しくメール送信が行われる為、問題ありません。



参考


My Memoz - Index
MIME::Liteのインターフェースが好きだ - サンプルコードによるPerl入門 〜 安定と信頼のPerlを学ぼう 〜
Email::Sender+Email::MIMEで添付ファイル | UCWD-Studio.【ホームページ制作 / 京都】
Email::MIME - search.cpan.org
第20回 Email::Sender:メールを送信する:モダンPerlの世界へようこそ|gihyo.jp … 技術評論社
ファイル名 or 拡張子から content-type(MIME type) を決める - tsucchiの日記

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Perl で添付ファイル付きメールを送信する  パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる