MIME::Base64を使ってUTF8でsendmail

今まではjcode.plとかmimew.plとか使っていたけど、古いねぇ。ってことでUTF8に書き換えた。ベースプログラムをメモ。

#!/usr/bin/perl

# UTF8でメール送信

use MIME::Base64;

my $Sendmail = '/usr/sbin/sendmail';

my $MailTo = "hoge\@hoge.hoge";
my $MailFrom = "ふー <foo\@foo.foo>";
my $MailCc = "";
my $MailSubject = "メールタイトル";
my $MailMsg = "メール本文です";


print "Content-type: text/html\n\n";

&MailSend($MailTo,$MailFrom,$MailCc,$MailSubject,$MailMsg);

print "success";

sub MailSend {

my ($MailTo,$MailFrom,$MailCc,$MailSubject,$MailMsg) = @_;

# subjectが76文字を超える場合
# Base64.pmの「encode_base64($str, $eol);」参照

# メール送信オプション
# http://www.qunea.com/blog/log/20080801-1749.html
# open (SENDMAIL, "| $Sendmail -t $MailTo") or die print "error";
open (SENDMAIL, "| $Sendmail -tf $MailTo") or die print "error";

print SENDMAIL "To: $MailTo\n";
print SENDMAIL "From:$MailFrom\n";
if ($MailCc ne "") { print SENDMAIL "Cc: $MailCc\n"; }
print SENDMAIL "Subject: $MailSubject\n";
print SENDMAIL "MIME-Version: 1.0\n";
print SENDMAIL "Content-Type: text/plain; charset=utf-8\n";
print SENDMAIL "Content-Transfer-Encoding: base64\n";
print SENDMAIL "\n";
print SENDMAIL encode_base64($MailMsg);
close(SENDMAIL);

}


ちなみにMIME::Base64が無かったのでCPANでMIME::Base64をダウンロード。中にBase64.pmが入ってる。プログラムを設置している階層に「MIME」というディレクトリを作り、その中にBase64.pmを入れたら動く。


 


TrackBack(0)

TrackBack URL for this entry:
http://www.qunea.com/mt/mt-tb.cgi/1734

Post a comment











画像の中に見える文字を入力してください。