[Perl] => [メール]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

添付付きメールを送信するにはMIME::Liteを利用すると便利です。Net::SMTP や直接Sendmailにパイプして添付を送信する場合、boundryでメッセージ部分と添付部分をきちんと区切ればよいのですが、すこしでも間違えるとうまく送れないことが多いので、こちらのモジュールを使用することをお勧めします。


[使用例]


#!/usr/bin/perl


use Jcode;
use MIME::Lite;


$subject = jcode($subject)->mime_encode();
$message = jcode($message)->jis;


#まずコンテナを作成
my $msg = MIME::Lite->new(
  From => "$mailfrom",
  To => "$mailto",
  Bcc => "$bcc",
  Subject => "$subject",
  Type => 'multipart/mixed'
);


#メッセージ部分
$msg->attach(
Type => 'text/plain; charset="iso-2022-jp"',
Data => "$message"
);


#添付ファイル部分。添付ファイルをパスで示す場合はPath => を使用します。
$msg->attach(
Type => 'application/octet-stream',
Data => "$attachment",
Filename => "$filename",
Disposition => 'attachment'
);


#送信
$msg->send();


添付ファイルなしに、本文のみのメッセージを送ることも可能です。

my $msg = MIME::Lite->new(

From => "$mailfrom",
To => "$mailto",
Subject => "$subject",
Type => 'text/plain; charset="ISO-2022-JP"',
Encoding => '7bit',
Data => "$message"
);

$msg->send();



関連記事
MIME::Parser - メールの解析
Net::POP3 - メールの取得
MIME::Lite - 添付付きメールの送信
メールの送信をするには-Net::SMTP
メールの文字化け
Email::Valid - メールの書式並びにMXのチェック
広告