今天花了很长时间看了javamail 的机制,然后又花了一上午时间写完了完整代码(仿照前辈代码),但是一直没有成功,因为我想在web中实现邮件的发送,所以就一直在不停的找错误,现在错误终于找到了。
错误1:
发送人的邮箱没有开通smtp和pop3协议(后有详细说明)。具体方法就是打开你的邮箱,然后在设置中开通此协议(可以百度,这里就不赘述了)
错误2:
在邮件会话属性中没有正确定义。
publicProperties getProperties(){
Properties p= newProperties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
p.put("mail.smtp.auth", validate ? "true" : "false");returnp;
}
如上代码,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)。
以上两个错误发表出来希望大家能够注意 ,小白一枚 ,还请大神不吝赐教。
最后,我还是再去写一遍程序吧。