使用Spring 的封装的MailSender,确实省事多了! 但在使用中,还是得注意些问题,记录如下:
增加验证,否则会报:553 authentication is required 的错误信息
1
2
3Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
JavaMailSenderImpl.setJavaMailProperties(prop);注意 :此处
prop.setProperty("mail.smtp.auth", "true");
中 true 必须用双引号引用起来,不然会报错,具体原因参考 Properties 文档。当邮件内容是HTML语言时的中文问题
初始化MimeMessageHelper辅助类时,设置”GBK” encoding!
1
MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK");
同时在设置:
<META http-equiv=Content-Type content='text/html; charset=GBK'>
如果都设置为”UTF-8”,在某些邮件客户端标题是冷僻字时,不能正常显示!邮件附件的中文问题
spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题,解决方法:
1
MimeUtility.encodeWord(file.getName());
以下是一段完整的邮件发送测试代码,暂无附件设置
1 | /** |
最后
注意:在用户名和密码都没有问题的情况下,如果代码抛出javax.mail.AuthenticationFailedException异常,先用OutLook测试一下看能否进行正常的收发邮件,有时信箱如果是新注册的话,邮件的服务商默认刚注册的帐号是不能使用pop3的。例如163.com在我进行代码测试时,刚刚注册的帐号是没有权限使用该功能的,所以就会抛出上述的异常。