- 論壇徽章:
- 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;
復(fù)制代碼
結(jié)果并不是我期望的郵件內(nèi)容和郵件附件都能夠被看到的,僅僅郵件內(nèi)容能夠看到,附件看不到。
- 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--
復(fù)制代碼
如果我注釋掉下列的代碼
- $msg->attach(Encoding => 'quoted-printable',Type => 'text/plain; charset=UTF-8',Data => $MAILBODY);
復(fù)制代碼
那么在郵件中是可以顯示出來郵件的附件的。不知道我是哪里出了問題?
[ 本帖最后由 Guptill 于 2009-12-14 16:13 編輯 ] |
最佳答案
查看完整內(nèi)容
把這一行:my $msg = MIME::Lite->new(From => $FROM,To => $TO,Subject => $subject,Type => 'multipart/alternative');中的alternative改為mixed。alternative表示兩者是可以替代的,客戶端程序顯示任何一個(gè)都可以。通常是text/plan部分和text/html部分,兩者存放含義相同,但格式不同的內(nèi)容。mixed則表示兩種都是需要的,通常為一個(gè)文本text/plan部分(或者text/html),和一個(gè)附件部分。郵件格式中,這些是可以遞歸的,不過有些 ...
|