perlでUTF-8メール送信する。sendmail版です。
use MIME::Base64; # ←インストールされていることが前提
sub send_email_hashimoto {
local($email,$subject,$msg,$headers,$frommail);
$email = $_[0];
$subject = $_[1];
$msg = $_[2];
$headers = $_[3];
$frommail = $_[4];
$sendmail = "/usr/sbin/sendmail -tf $frommail";
$eol = "";
$subject_b = encode_base64($subject,$eol);
$subject_b = "=?utf-8?B?" . $subject_b . "?=";
open (SENDMAIL, "| $sendmail");
print SENDMAIL $headers;
print SENDMAIL "To: $email\n";
print SENDMAIL "Subject: $subject_b\n\n"; # ヘッダー部分終了のため、改行を「\n\n」と重ねます。
print SENDMAIL encode_base64($msg); # 本文もbase64エンコードしておく
close(SENDMAIL);
}
上記サブ関数を下記のように利用します。
$frommail = "送信元メールアドレス"; $email = "送信先メールアドレス"; $subject ="メールタイトル"; $msg = "メール本文"; $headers = "From:$frommail\nMIME-Version: 1.0\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: base64\n"; send_email_hashimoto($email,$subject,$msg,$headers,$frommail);