今天花了很长时间看了javamail 的机制,然后又花了一上午时间写完了完整代码(仿照前辈代码),但是一直没有成功,因为我想在web中实现邮件的发送,所以就一直在不停的找错误,现在错误终于找到了。
错误1:
发送人的邮箱没有开通smtp和pop3协议(后有详细说明)。具体方法就是打开你的邮箱,然后在设置中开通此协议(可以百度,这里就不赘述了)
错误2:
在邮件会话属性中没有正确定义。
public Properties getProperties(){ Properties p = new Properties(); p.put("mail.smtp.host", this.mailServerHost); p.put("mail.smtp.port", this.mailServerPort); p.put("mail.smtp.auth", validate ? "true" : "false"); return p; }
如上代码,p.put("mail.smtp.auth",validate),一开始我就这么写的,但是一直不成功,抛出异常信息是:com.sun.mail.smtp.SMTPSendFailedException: 503 Error: need EHLO and AUTH first !
后来百度的一通才知道p.put("mail.smtp.auth","true"//"flase"); 参数是以字符串形式给出的(我是这样理解的,但是看源文件,发现这个Properties.put方法继承了哈希表,但我还是这么理解虽然哈希表中的类型是object)。
以上两个错误发表出来希望大家能够注意 ,小白一枚 ,还请大神不吝赐教。
另:javamail的机制与实现我就引用一下大神写的一篇文章吧 http://www.cnblogs.com/mjorcen/p/4001260.html
javamail相关内容(概述,协议,对象):http://blog.csdn.net/neo_liu0000/article/details/6668622
最后,我还是再去写一遍程序吧。
浙公网安备 33010602011771号