浏览 12571 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-06
但在使用中,还是得注意些问题 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(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-26
呵呵,帮了我的忙哦.谢谢啊,缘分哦.
|
|
返回顶楼 | |
发表时间:2007-03-13
不知道楼主有没有这样用过:为了让邮件的接受者,可以在邮件的客户端,或者直接登陆网上邮局时,可以看到你邮件发送者的姓名,需要进行下面的调用:
messageHelp.setFrom("李昆 <likun35@163.com>"); 可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧 |
|
返回顶楼 | |
发表时间:2007-03-13
不知道楼主有没有这样用过:为了让邮件的接受者,可以在邮件的客户端,或者直接登陆网上邮局时,可以看到你邮件发送者的姓名,需要进行下面的调用:
messageHelp.setFrom("李昆 <likun35@163.com>"); 可这样,发到用户那里的话就会有乱码,我想了半天也想不到怎么解决,大家一起探讨一下吧 |
|
返回顶楼 | |
发表时间:2007-03-16
对好象是设置编码为gbk的,我用spring发邮件的时候那个乱码问题害了我两天,后面把编码改为gbk就行拉,真的是郁闷的问题!
|
|
返回顶楼 | |