使用Email :: MIME将.xls作为附件perl发送

时间:2013-11-25 11:18:19

标签: perl email multipart mime-message mime-mail

以下是发送电子邮件的代码:

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

2 个答案:

答案 0 :(得分:2)

好像是,你在第一个Email :: MIME>创建调用(for attach)中忘记了body参数。请参阅示例perldoc Email :: MIME。

答案 1 :(得分:0)

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

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