在使用JavaMail这套API通过网易163邮箱向新浪邮箱发送一份最简单的Email(纯文本邮件)时,发现报如下错误:
com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp10,DsCowABnRs6n_ONXd89mCg–.13177S2 1474559144,please see http://mail.163.com/help/help_spam_16.htm?ip=36.110.119.29&hostid=smtp10&time=1474559144
com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp10,DsCowABnRs6n_ONXd89mCg--.13177S2 1474559144,please see http://mail.163.com/help/help_spam_16.htm?ip=36.110.119.29&hostid=smtp10&time=1474559144
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2133)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1912)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1135)
at cn.itcast.demo.SendMail.main(SendMail.java:39)
我通过163的SMTP服务器发送过来的错误提示信息,访问了http://mail.163.com/help/help_spam_16.htm?ip=36.110.119.29&hostid=smtp10&time=1474559144该页面,发现:
退信代码说明:
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
这说明SMTP服务器认为该邮件的内容包含了未被许可的信息,或被其识别为垃圾邮件,所以将该邮件退回了。那到底该怎么解决呢?
这个时候我们要注意邮件的主题和正文内容的写法了,应尽量把主题和正文的内容缩短,尽量不要带敏感字;而且主题和正文的内容中避免出现测试等字样。而我发送邮件失败的原因是主题中有test字样,我也是郁闷的要死!
message.setSubject("test");
我将其改为:
message.setSubject("love");
结果发送邮件就成功了!!!