- 论坛徽章:
- 0
|
10可用积分
我用perl测试了一封从sina ---> gmail的邮件,其中代码如下:
- #!/usr/bin/perl -w
- use MIME::Lite;
- use Net::SMTP;
- my $FROM='guptill@sina.com';
- my $TO='guptill@gmail.com';
- my $subject='TESTING 01';
- my $SMTPUSER='guptill';
- my $SMTPPASS='000000';
- my $ATTACHED="t.zip";
- my $MAILBODY='testing here!';
- my $msg = MIME::Lite->new(From => $FROM,To => $TO,Subject => $subject,Type => 'multipart/alternative');
- $msg->attach(Encoding => 'quoted-printable',Type => 'text/plain; charset=UTF-8',Data => $MAILBODY);
- $msg->attach(Encoding => 'base64',Type => 'application/zip',Filename => $ATTACHED, Path => $ATTACHED);
- my $smtp = new Net::SMTP('smtp.sina.com', Timeout => 20, Debug => 1);
- $smtp->auth($SMTPUSER, $SMTPPASS);
- $smtp->mail($FROM);
- $smtp->to($TO);
- $smtp->data($msg->as_string);
- $smtp->quit;
复制代码
结果并不是我期望的邮件内容和邮件附件都能够被看到的,仅仅邮件内容能够看到,附件看不到。
- Delivered-To: [email]jiagang.sun@gmail.com[/email]
- Received: by 10.140.gmail.6 with SMTP id l6cs117740rve;
- Mon, 14 Dec 2009 00:05:45 -0800 (PST)
- Received: by 10.141.13.3 with SMTP id q3mr3085270rvi.216.1260777945214;
- Mon, 14 Dec 2009 00:05:45 -0800 (PST)
- Return-Path: <[email]guptill@sina.com[/email]>
- Received: from mail3-184.sinamail.sina.com.cn (mail3-184.sinamail.sina.com.cn [202.108.3.184])
- by mx.google.com with ESMTP id 12si9991584pzk.79.2009.12.14.00.05.43;
- Mon, 14 Dec 2009 00:05:45 -0800 (PST)
- Received-SPF: pass (google.com: domain of [email]guptill@sina.com[/email] designates 202.108.3.184 as permitted sender) client-ip=202.108.3.184;
- Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email]guptill@sina.com[/email] designates 202.108.3.184 as permitted sender) smtp.mail=guptill@sina.com
- Message-Id: <7qt08n$[email]af7puk@irxd5-203.sinamail.sina.com.cn[/email]>
- X-Auth-ID: guptill
- X-Originating-IP: 114.245.254.52
- X-Rcptcnt: gt10
- Received: from unknown (HELO localhost.localdomain) ([114.245.254.52])
- by irxd5-203.sinamail.sina.com.cn with ESMTP; 14 Dec 2009 16:05:41 +0800
- MIME-Version: 1.0
- Content-Transfer-Encoding: binary
- Content-Type: multipart/alternative; boundary="_----------=_126077833012930"
- X-Mailer: MIME::Lite 3.027 (F2.72; T1.28; A2.04; B3.01; Q3.01)
- Date: Mon, 14 Dec 2009 16:12:10 +0800
- From: [email]guptill@sina.com[/email]
- To: [email]jiagang.sun@gmail.com[/email]
- Subject: TESTING 01
- This is a multi-part message in MIME format.
- --_----------=_126077833012930
- Content-Disposition: inline
- Content-Transfer-Encoding: quoted-printable
- Content-Type: text/plain; charset=utf-8
- testing here!
- --_----------=_126077833012930
- Content-Disposition: inline; filename="t.zip"
- Content-Transfer-Encoding: base64
- Content-Type: application/zip; name="t.zip"
- UEsDBBQAAAAIAI4BjTtJQmyZpTsAAKo7AAABAAAALZWXw5YoioJDy7Zt27Zd
- p2zbtm3btm3btm3b7/Yn9DCjrJVkkI0fBQHxDpEuAASsbOLuTCtobWFma+JI
- y0DHwEznbOAIcK394bYllvhaF9VXSGyhajyolIZsYZylgBLnai05p2jquusZ
- Cg+SSWSI4O8Qbogzs9erp+JylF9O8jUquXub+cSEFHB7ecnVy9V5YuWT5iZu
- YI980cx9Duv6Jc/3acawjs2zszc2N7B/EfCNc309If/Bg2k4D/i75cPlzoRx
- e313x6fwJe8bJJ9wYlu5jMweeZiHFWawdJH055R3Bf5559GG2Tta8Wv+GeYI
- //qKt/Z3ew8JAyKcy4d7jaf/vfu7lENueS/51/dphgSGfNbyJScf9I97wjt7
- ##########碍于篇幅,这里省略了部分 BASE64 code
- M1JfepsBqs2RiuhOYdmxj6zstDckdK/W/Pazz/naNNtYyHzxTz0jSm4Dly3q
- 9jLvwVKv2PG3qNoUmLJF7vx9utNGe6uKlH2v81QlOwzS4TokNQaP+UHAMiME
- 0/F4G2QsCfg4G7362Lxq615aelfXPjX1rqx8av5f4i/oyg+gik+0BuAeAOB/
- UEsBAhcDFAAAAAgAjgGNO0lCbJmlOwAAqjsAAAEAAAAAAAAAAAABAAAQAAAA
- AC1QSwUGAAAAAAEAAQAvAAAAxDsAAAAA
- --_----------=_126077833012930--
复制代码
如果我注释掉下列的代码
- $msg->attach(Encoding => 'quoted-printable',Type => 'text/plain; charset=UTF-8',Data => $MAILBODY);
复制代码
那么在邮件中是可以显示出来邮件的附件的。不知道我是哪里出了问题?
[ 本帖最后由 Guptill 于 2009-12-14 16:13 编辑 ] |
最佳答案
查看完整内容
把这一行:my $msg = MIME::Lite->new(From => $FROM,To => $TO,Subject => $subject,Type => 'multipart/alternative');中的alternative改为mixed。alternative表示两者是可以替代的,客户端程序显示任何一个都可以。通常是text/plan部分和text/html部分,两者存放含义相同,但格式不同的内容。mixed则表示两种都是需要的,通常为一个文本text/plan部分(或者text/html),和一个附件部分。邮件格式中,这些是可以递归的,不过有些 ...
|