0

这是发送电子邮件的代码:

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 字节。它存在于我的本地目录中,我无法理解为什么它没有作为附件被拾取。我也尝试过给出绝对路径,但这也不起作用。

4

2 回答 2

2

似乎是,您忘记了第一个 Email::MIME>create 调用(用于附加)中的 body 参数。请参阅示例 perldoc Email::MIME。

于 2013-11-25T13:59:08.460 回答
0

您可能需要查看Mail::SendEasy,因为它支持 SMTP 身份验证和附件。

如果您坚持使用Email::MIME - 请在文档中注明它建议使用Email::Stuffer

于 2013-11-25T13:32:33.123 回答