添付ファイル付きのメールを送信する
MIME::Liteモジュールを使うと簡単です。
MIMEエンコードはEncodeモジュールでMIME-Header-ISO_2022_JPを使えばできるそうですが、手元の環境でできなかったので日本語部分の処理にはJcodeモジュールを使っています。
use strict; use warnings; use MIME::Lite; use Jcode; my $from = 'from@example.com'; # 送信元 my $to = 'to@example.com'; # 送信先 my $path = './send_data.gz'; # 添付するファイル(このファイルを読み込む) my $filename = 'data.gz'; # 添付ファイル名(このファイル名でメールに添付する) my $type = 'application/x-gzip'; # 添付ファイルタイプ my $subject = 'サブジェクトです'; # サブジェクト my $message = '本文です'; # 本文 # メールサーバの指定(省略時はsendmailコマンドを使用する) MIME::Lite->send('smtp', 'mail.example.com'); $subject = jcode($subject)->mime_encode(); $message = jcode($message)->jis; my $msg = MIME::Lite->new( From => $from, To => $to, Subject => $subject, Type => 'multipart/mixed', ); $msg->attach( Type => 'text/plain; charset="iso-2022-jp"', Encoding => '7bit', Data => $message, ); $msg->attach( Type => $type, Path => $path, Filename => $filename, Disposition => 'attachment', ); $msg->send;
関連項目
・メール送信・メールサブジェクトの作成
・メール受信