以下是发送电子邮件的代码:
use Email::MIME;
use IO::All;
my @parts = (
Email::MIME->create(
attributes => {
filename => "report.xls",
content_type => "application/vnd.ms-excel",
encoding => "base64",
},
body => "Body added as per the answer to this question" #no effect
),
Email::MIME->create(
attributes => {
content_type => "text/plain",
charset => "US-ASCII",
encoding => "base64",
},
body_str => "$body_of_message",
),
);
use Email::Send;
my $sender = Email::Send->new({mailer => 'SMTP'});
$sender->mailer_args([Host => 'localhost']);
$sender->send($email);
现在我能够发送邮件,但report.xls
为空,即0字节。它出现在我的本地目录中,我无法理解为什么它没有作为附件被接收。我也试过给出绝对路径,但这也不行。
答案 0 :(得分:2)
好像是,你在第一个Email :: MIME>创建调用(for attach)中忘记了body参数。请参阅示例perldoc Email :: MIME。
答案 1 :(得分:0)
您可能希望查看Mail::SendEasy,因为它支持SMTP身份验证和附件。
如果您坚持使用Email::MIME - 请在其建议使用Email::Stuffer的文档中注明。