使用Spring的javamail注意的中文有关问题
使用Spring的javamail注意的中文问题
使用Spring 的封装的MailSender,确实省事多了!
但在使用中,还是得注意些问题
1.增加验证,否则会报:553 authentication is required 的错误信息
Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
JavaMailSenderImpl.setJavaMailProperties(prop);
2.当邮件内容是HTML语言时的中文问题:
初始化MimeMessageHelper辅助类时,设置"GBK" encoding!
如:
MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");
同时在设置:<META http-equiv=Content-Type content='text/html; charset=GBK'>
如果都设置为"UTF-8",在某些邮件客户端标题是冷僻字时,不能正常显示!
3.邮件附件的中文问题!
spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题:
解决方法:MimeUtility.encodeWord(file.getName());就OK了!
以下是可以运行的代码
SendMailDemo.java
使用Spring 的封装的MailSender,确实省事多了!
但在使用中,还是得注意些问题
1.增加验证,否则会报:553 authentication is required 的错误信息
Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
JavaMailSenderImpl.setJavaMailProperties(prop);
2.当邮件内容是HTML语言时的中文问题:
初始化MimeMessageHelper辅助类时,设置"GBK" encoding!
如:
MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");
同时在设置:<META http-equiv=Content-Type content='text/html; charset=GBK'>
如果都设置为"UTF-8",在某些邮件客户端标题是冷僻字时,不能正常显示!
3.邮件附件的中文问题!
spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题:
解决方法:MimeUtility.encodeWord(file.getName());就OK了!
以下是可以运行的代码
SendMailDemo.java
import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; public class SendMailDemo { public void send163ByMutil() throws MessagingException { JavaMailSenderImpl javaMail = new JavaMailSenderImpl(); javaMail.setHost("smtp.163.com"); javaMail.setPassword("passowrd"); javaMail.setUsername("username"); Properties prop = new Properties(); prop.setProperty("mail.smtp.auth", "true"); javaMail.setJavaMailProperties(prop); MimeMessage message = javaMail.createMimeMessage(); MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK"); messageHelp.setFrom("likun35@163.com"); messageHelp.setTo("likun35@163.com"); messageHelp.setSubject("邮件测试"); // messageHelp String body = "<html><head><META http-equiv=Content-Type content='text/html; charset=GBK'></HEAD><title>test</title></head><body>dear 小燕子 \n "; body+="<red>This is Text!</red> pic <img src='cid:a'></img><br>hello<img src='cid:b'></img></body></html>"; messageHelp.setText(body, true); messageHelp.addInline("a", new File("E:/xiezi.jpg")); messageHelp.addInline("b", new File("E:/logo.png")); File file=new File("E:/Favorites中文文件.rar"); try { messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()), file); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } javaMail.send(message); } public static void main(String[] args) throws MessagingException { SendMail send=new SendMail(); send.send163ByMutil(); } }
1 楼
tikii
2006-12-26
呵呵,帮了我的忙哦.谢谢啊,缘分哦.
2 楼
cavenaghi
2007-03-13
不知道楼主有没有这样用过:为了让邮件的接受者,可以在邮件的客户端,或者直接登陆网上邮局时,可以看到你邮件发送者的姓名,需要进行下面的调用:
messageHelp.setFrom("李昆 <likun35@163.com>");
可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧
messageHelp.setFrom("李昆 <likun35@163.com>");
可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧
3 楼
cavenaghi
2007-03-13
不知道楼主有没有这样用过:为了让邮件的接受者,可以在邮件的客户端,或者直接登陆网上邮局时,可以看到你邮件发送者的姓名,需要进行下面的调用:
messageHelp.setFrom("李昆 <likun35@163.com>");
可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧
messageHelp.setFrom("李昆 <likun35@163.com>");
可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧
4 楼
wcjmaomao
2007-03-16
对好象是设置编码为gbk的,我用spring发邮件的时候那个乱码问题害了我两天,后面把编码改为gbk就行拉,真的是郁闷的问题!
5 楼
scut_xiaqi
2007-04-24
谢谢楼主,这个问题困扰了我好久,现在终于解决了
6 楼
cskysnew
2007-04-24
谢谢lz的文章,又可以少走弯路了。
7 楼
sskhnje
2007-06-22
你的这个代码还是有点问题
我完全复制下来, 然后发送.
只有126的邮箱能正常显示, 其他如hotmail, qq邮箱等都显示如下.
急切盼望能得到您的指导, 谢谢!
Y@microsof-059302>
Date: Fri, 22 Jun 2007 20:48:59 +0800 (CST)
From: sskhnje@163.com
To: sskhnje@mail.ynu.edu.cn
Subject: =?GBK?B?08q8/rLiytQ=?=
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_16259139.1182516532869"
X-Coremail-Antispam: 1U3Yxn0WfASr-VFAUDIcSsGvfJTRUUUj28FxVCF77xC6IxKo4
kEV4ylw4CEc2x0rVAKj4xxM4xvF2IEb7IF0Fy264kE64k0F24lx4CE17CEb7AF67AKxVWU
JVWUXwCjxxvEw4WlFcxC0VAqx4xG64AKrs4lc2IjII80xcxEwVWUZVWUtwASzI0EjI02j7
AqF2xKxwASY2vE4c8EcI0ErcxK0VAFwI0_JcC_GcWl4x8a6c8ajcxJMcIj6I8E87Iv67AK
xVWUJVW8JwAFxVCaYxvI4VCIwcAKzIAtMxkIecxEwVAFwVW5JwAFF20E14v26r1j6r4UMc
Ij6xIIjxv20xvE14v26r106r15M7kC6x804xWl1IIY67AEw4v_Jr0_Jr4l5I8CrVAvF7xS
0VAEw40v6r17Mc02F40EY4x0e2IEc7I2Y4C_Jrylc7Ca8VAvwVCqb41lb7Iv0xC_CrUanT
9S1TB71UUUUUUa7-sFnT9fn5n5KrsFqrs0vFZ2ywnF9Fs7X393tF9ayF93uF4DKa4xWjIF
yTuYvjxUX0PfDUUUUUAaLaJ3U
------=_Part_0_16259139.1182516532869
Content-Type: multipart/related;
boundary="----=_Part_1_17829242.1182516532899"
------=_Part_1_17829242.1182516532899
Content-Type: text/html;charset=GBK
Content-Transfer-Encoding: quoted-printable
<html><head><META http-equiv=3DContent-Type content=3D'text/html; charset =
=3DGBK'><title>test</title></head><body> dear =D0=A1=D1=E0=D7=D3<br> <font =
color=3D'red'>This is Text!</font> pic <img src=3D'cid:a'></img><br>hello<i=
mg src=3D'cid:b'></img></body></html>
------=_Part_1_17829242.1182516532899
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: <a>
R0lGODlhKQAlAPcAAABSAABjMQDOYwgICGOcY3tjOc7OnPfv3v9jAP+cMf/GQv//Y///pf//////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
我完全复制下来, 然后发送.
只有126的邮箱能正常显示, 其他如hotmail, qq邮箱等都显示如下.
急切盼望能得到您的指导, 谢谢!
Y@microsof-059302>
Date: Fri, 22 Jun 2007 20:48:59 +0800 (CST)
From: sskhnje@163.com
To: sskhnje@mail.ynu.edu.cn
Subject: =?GBK?B?08q8/rLiytQ=?=
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_16259139.1182516532869"
X-Coremail-Antispam: 1U3Yxn0WfASr-VFAUDIcSsGvfJTRUUUj28FxVCF77xC6IxKo4
kEV4ylw4CEc2x0rVAKj4xxM4xvF2IEb7IF0Fy264kE64k0F24lx4CE17CEb7AF67AKxVWU
JVWUXwCjxxvEw4WlFcxC0VAqx4xG64AKrs4lc2IjII80xcxEwVWUZVWUtwASzI0EjI02j7
AqF2xKxwASY2vE4c8EcI0ErcxK0VAFwI0_JcC_GcWl4x8a6c8ajcxJMcIj6I8E87Iv67AK
xVWUJVW8JwAFxVCaYxvI4VCIwcAKzIAtMxkIecxEwVAFwVW5JwAFF20E14v26r1j6r4UMc
Ij6xIIjxv20xvE14v26r106r15M7kC6x804xWl1IIY67AEw4v_Jr0_Jr4l5I8CrVAvF7xS
0VAEw40v6r17Mc02F40EY4x0e2IEc7I2Y4C_Jrylc7Ca8VAvwVCqb41lb7Iv0xC_CrUanT
9S1TB71UUUUUUa7-sFnT9fn5n5KrsFqrs0vFZ2ywnF9Fs7X393tF9ayF93uF4DKa4xWjIF
yTuYvjxUX0PfDUUUUUAaLaJ3U
------=_Part_0_16259139.1182516532869
Content-Type: multipart/related;
boundary="----=_Part_1_17829242.1182516532899"
------=_Part_1_17829242.1182516532899
Content-Type: text/html;charset=GBK
Content-Transfer-Encoding: quoted-printable
<html><head><META http-equiv=3DContent-Type content=3D'text/html; charset =
=3DGBK'><title>test</title></head><body> dear =D0=A1=D1=E0=D7=D3<br> <font =
color=3D'red'>This is Text!</font> pic <img src=3D'cid:a'></img><br>hello<i=
mg src=3D'cid:b'></img></body></html>
------=_Part_1_17829242.1182516532899
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: <a>
R0lGODlhKQAlAPcAAABSAABjMQDOYwgICGOcY3tjOc7OnPfv3v9jAP+cMf/GQv//Y///pf//////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
8 楼
sskhnje
2007-06-29
贴了这么多天了, 敬请博客主人帮忙.
在些拜谢!
在些拜谢!