2006年11月13日月曜日

[Perl] MIME::Entity 使わずに添付つきメールを送信

telnetできない+MIME::Entity ないので、結局 mime_pls を使ってこんな感じ。
&bodyencode と &benflush でBase64エンコードするのがポイント。
open(FH,"$file");
my $base64_data = join('',);
close(FH);
$base64_data = &bodyencode($base64_data,"b64");
$base64_data .= &benflush("b64");

my $bound = 'wq5se3d1ew';
my $mailheader => "END";
To: $mailto
From: $mailfrom
Subject: $subject
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="$bound"
END

my $mail_body => "END";
--$bound
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

ほんぶん!!!

--$bound
Content-Type:application/octet-stream; name=$filename
Content-Transfer-Encoding: BASE64

$base64_data

--$bound--
END

open(OUT, "| /sbin/sendmail -t");
print OUT &mimeencode($mailheader);
print OUT $mail_body;


0 件のコメント: