首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

应用Spring 的封装的MailSender

2012-10-29 
使用Spring 的封装的MailSender使用Spring 的封装的MailSender,确实省事多了! 但在使用中,还是得注意些问

使用Spring 的封装的MailSender

    使用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; ??
  1. import?java.io.UnsupportedEncodingException; ?? import?java.util.Properties; ??
  2. ?? import?javax.mail.MessagingException; ??
  3. import?javax.mail.internet.MimeMessage; ?? import?javax.mail.internet.MimeUtility; ??
  4. ?? import?org.springframework.mail.javamail.JavaMailSenderImpl; ??
  5. import?org.springframework.mail.javamail.MimeMessageHelper; ?? ??
  6. public?class?SendMailDemo?{ ?? ????public??void?send163ByMutil()?throws?MessagingException?{ ??
  7. ????????JavaMailSenderImpl?javaMail?=?new?JavaMailSenderImpl(); ?? ????????javaMail.setHost("smtp.163.com"); ??
  8. ????????javaMail.setPassword("passowrd"); ?? ????????javaMail.setUsername("username"); ??
  9. ????????Properties?prop?=?new?Properties(); ?? ????????prop.setProperty("mail.smtp.auth",?"true");????? ??
  10. ????????javaMail.setJavaMailProperties(prop); ?? ????????MimeMessage?message?=?javaMail.createMimeMessage(); ??
  11. ????????MimeMessageHelper?messageHelp?=?new?MimeMessageHelper(message,true,"GBK"); ?? ????????messageHelp.setFrom("likun35@163.com"); ??
  12. ????????messageHelp.setTo("likun35@163.com"); ?? ????????messageHelp.setSubject("邮件测试"); ??
  13. ????????//?messageHelp ?? ????????String?body?=?"<html><head><META?http-equiv=Content-Type?content='text/html;?charset=GBK'></HEAD><title>test</title></head><body>dear?小燕子?\n?"; ??
  14. ????????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); ??
  15. ????????messageHelp.addInline("a",?new?File("E:/xiezi.jpg")); ?? ????????messageHelp.addInline("b",?new?File("E:/logo.png"));???????? ??
  16. ????????File?file=new?File("E:/Favorites中文文件.rar");????? ?? ????????try?{ ??
  17. ????????????messageHelp.addAttachment(MimeUtility.encodeWord(file.getName()),?file); ?? ????????}?catch?(UnsupportedEncodingException?e)?{?????????? ??
  18. ????????????e.printStackTrace(); ?? ????????} ??
  19. ????????javaMail.send(message); ?? ????} ??
  20. ????public?static?void?main(String[]?args)?throws?MessagingException?{?????? ?? ????????SendMail?send=new?SendMail(); ??
  21. ????????send.send163ByMutil(); ?? ??
  22. ????} ?? } ??

热点排行