+ -
当前位置:首页 → 问答吧 → perl如何发送HTML格式的邮件外带一个附件

perl如何发送HTML格式的邮件外带一个附件

时间:2010-12-05

来源:互联网

Perl code
#!perl
use Mail::Sender;
open (IN, "< ./index.html") or die("open index.html failed");
$sendmail = new Mail::Sender{
                smtp => 'smtp.163.com',
                from => '[email protected]',
                auth => 'LOGIN',
                authid => 'login',
                authpwd => '123456',
                subject => 'Acefei Send Html Mail',
                to => '[email protected]',
            }or die "can't create mail\n";

#Send File
$sendmail->MailFile({
            msg => " ",
            file => './SendHTMLmail.pl',    
        }) or print $Mail::Sender::Error;

#Send HTML MSG
$sendmail->Open({
        headers => "MIME-Version: 1.0\r\nContent-type: text/html\r\nContent-Transfer-Encoding:7bit",
    });
while (<IN>)
{
    $sendmail->SendEx($_);
}
close IN;
$sendmail->Close();


我通过这个方式发出来的邮件有两封,我想只发一封信,里面有HTML的内容和一个附件,怎么办?
另外 sendmail->Attach怎么用?

作者: sf_lsy   发布时间: 2010-12-05

简单看了下文档,$sendmail->MailFile本身就是发邮件,后面的$sendmail->Open/$sendmail->Close又是在发邮件,你这样子当然是发两封了。
要想又发HTML,又带附件的话,应该要先->OpenMultipart,然后->Attach两次,一次文件,一次正文,在->Close。例子文档里好像有不少,看下http://search.cpan.org/~jenda/Mail-Sender-0.8.16/Sender.pm吧。

另外按照文档上的说法,SendEx应该用SendEnc。你自己要多注意下中文的问题。

作者: iambic   发布时间: 2010-12-06