javamail使用时遇到的问题及解决

javamail使用时遇到的问题及解决

在使用javamail的时候由于一开始的不熟悉和其他种种原因,中间出了很多问题,而其中一些花费了我很长的时间,为了节省大家的时间,下面就说一下我遇到那些问题和解决方法。

1.网易邮箱服务器代理

网易邮箱的服务器实在是有坑!在写完代码后,我遇到的一下错误提示:
(554, 'DT:SPM 163 smtp5,jtKowAD3MJz2c1JXLcK2AA--.52114S2 1465021431,please seehttp:// mai l.16 3.c om /help/help_spam_16.htm?ip=123.114.121.110&hostid=smtp5&time= 1465021431')
查看在上面提示的网址,发现是发送的邮件包含了未被许可的信息。在上网查找资料后,发现可能是因为标题为“test”之类的字符串,或者内容不恰当引起。可是在我尝试了各式各样的内容和标签后,还是无法解决,于是便换了个网易邮箱,发现第一封居然发送成功了,再之后的又是报出一样的错误,然后我便又注册了两个网易邮箱,发现都是第一封能发,后面的就不行,于是发现网易有坑,填不上了,遂放弃。

2.qq邮箱服务器代理

在换了qq邮箱后,首先遇到的问题是:A secure connection is requiered(such as ssl)
有以下几个修正步骤:
(1). 查看是否开启POP3/SMTP服务。在账户设置里面修改即可
(2).将连接的服务器从smtp.qq.com 换到smtp.exmail.qq.com。
(3).如果(2)后还不成功,将服务器换回smtp.qq.com,然后在import的包处加入代码:
import com.sun.mail.util.MailSSLSocketFactory;
然后创建ssl安全连接,代码如下:
	MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);
之后问题便解决了。

3.Could not connect to SMTP host: smtp.qq.com, port: 465

这个问题的详细描述为:MessagingException: Could not connect to SMTP host: smtp.qq.com, port: 465;
nested exception is: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
而后在网上查找到了简书上的一篇资料:http://www.jianshu.com/p/5ba3bde60f21
大抵是由于jdk1.8里面有一个jce包,由于安全性的问题访问https时会报错,我们在官网上找到可替代的包替换掉即可,或者把jdk换成1.7版本的。下载地址:
解压完后里面有两个jar包,我们在jdk目录下按照  jdk\jre\lib\security路径,将里面原有的两个包替换掉即可。
而具体的实现代码在我的上一篇文章有完整实现,传送门:java发送邮件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值