论坛首页 编程语言技术论坛

用active mailer发送gmail信件遇到的两个问题

浏览 3159 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-25  
1.gmail似乎是为了解决垃圾邮件问题,有时候发信会被退回,提示信息如下
代码
 
  1. Technical details of permanent failure:  
  2. PERM_FAILURE: Message rejected for Sector 5 policy reasons  

不懂这个“Sector 5 policy”是什么地方的东西,也不知道怎么解决。

2.我们发送的信件包含中文,编码则是统一用utf-8,结果发现163的信箱会显示乱码。而在web上直接用gmail发信则没有问题,如果用其它邮件客户端(我用Evolution)发送也没有错,我比较了一下原始信息,发现确实有区别:
通过web发送的信件
 
  1. Content-Type: multipart/alternative;   
  2.     boundary="----=_Part_143410_16080054.1188051544112"  
  3. Delivered-To: makeradmin@gmail.com  
  4.   
  5. ------=_Part_143410_16080054.1188051544112  
  6. Content-Type: text/plain; charset=GB2312  
  7. Content-Transfer-Encoding: base64  
  8. Content-Disposition: inline  
  9.   
  10. ICAgLSAqzfjS1yoK  
  11. ------=_Part_143410_16080054.1188051544112  
  12. Content-Type: text/html; charset=GB2312  
  13. Content-Transfer-Encoding: base64  
  14. Content-Disposition: inline  
  15.   
  16. PHVsPjxsaT48c3Ryb25nPs340tc8L3N0cm9uZz48L2xpPjwvdWw+Cg==  
  17. ------=_Part_143410_16080054.1188051544112--  


通过Evolution发送的信件
 
  1. --=-LH2nyzUVing+UsJ6hhVF  
  2. Content-Type: text/plain; charset=UTF-8  
  3. Content-Transfer-Encoding: 8bit  
  4.   
  5. 网易邮箱测试  
  6.   
  7. --=-LH2nyzUVing+UsJ6hhVF  
  8. Content-Type: text/html; charset=utf-8  
  9. Content-Transfer-Encoding: 7bit  
  10.   
  11. "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">  
  12.   
  13.   
  14.   
  15.   
  16.   
  17.   
  18. 网易邮箱测试  
  19.   
  20.   

我们用active mailer发送的信件
 
  1. Return-Path: <makeradmin></makeradmin>@gmail.com>  
  2. Received: from  ( [xx.xx.xx.xx])  
  3.         by mx.google.com with ESMTPS id v38sm6206814wah.2007.08.25.06.58.25  
  4.         (version=TLSv1/SSLv3 cipher=OTHER);  
  5.         Sat, 25 Aug 2007 06:58:26 -0700 (PDT)  
  6. Date: Sat, 25 Aug 2007 21:58:17 +0800  
  7. From: makeradmin@gmail.com  
  8. To: freebuilder@163.com  
  9. Subject: =?utf-8?Q?=e6=82=a8=e7=9a=84=e6=9c=8b=e5=8f=8b=e9=82=80=e8=af=b7=e6=82=a8=e5=8a=a0=e5=85=a5=e7=9a=ae=e5=8c=a0=e7=bd=91?=  
  10. Mime-Version: 1.0  
  11. Content-Type: text/html  
  12. Message-ID: <46d03582.26f8720a.3b80.ffffd25a@mx.google.com>  
  13.   
  14.   
  15.   
  16.   
  17.     
  18.   
  19.   
  20. ...  

现在原因是找到了,可是我不知道怎么用上面两种方式发信,应该用base64编码吧?查ruby和rails的api没有找到合适的。
不知道我的思路是不是有错误,有没有人遇到过类似的问题?
   发表时间:2007-08-27  
看起来你发信的编码是Quoted Printable。

信件传递的过程中,传输的内容中不能存在UTF-8的字符。SMTP只解决传输过程,不解决传输过程中的邮件内容文体组成和编码问题,所以一般说来,需要在发送前构建邮件体,将所有非可打印字符用BASE64或者QUOTED PRINTABLE编码,然后再发送。
所以,你需要先将邮件内容BASE64编码,然后再发送。
0 请登录后投票
   发表时间:2007-08-30  
谢谢,不过我现在还没有搞明白怎么让信件被BASE64编码一下,搞定以后再回复。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics