1.问题描述:关于使用Java Mail进行邮件发送,抛出Could not connect to SMTP host: xx@xxx.com, port: 25的异常可能:html
当咱们使用Java Mail进行邮件发送的时候,有时候会抛出Could not connect to SMTP host: xx@xxx.com, port: 25的异常。java
通常的,处理该异常的作法都是去检查咱们的配置是否出现了错误,即去检查是否是咱们配置的邮件服务器的smtp地址写错了。linux
这时候要注意了,若是是密码或者是用户名错误,是不会抛出链接不上smtp地址的异常的,而是会报出javax.mail.AuthenticationFailedException,若是咱们配置了debug,那么就会发现邮件服务器返回的消息是535 Error: authentication failed。服务器
一般的,smtp地址错误或者是端口号配置错误,那么改回正确的地址以及端口就好了。这个没有什么好说的。测试
而如今须要讨论的是,若是是在保证所有配置都是正确的状况下,那么还出现这种状况,还抛出异常,那又是怎么回事呢?阿里云
而这也是我所遇到的状况。找了不少的资料,想过不少种状况,最后将想法定在了是否是smtp的25端口会对linux服务器作出限制。spa
根据这样的想法,我在网上搜索了一下,并无找到对应的解决方法。固然,通过屡次的寻找,我在百度知道找到了一丝蛛丝马迹。其中该提问者提到的问题跟我所遇到的问题与我有点关联:
该服务器下全部的连接外部25端口的操做都返回超时异常。debug
考虑到这样的状况,我自身去尝试了telnet一下邮箱的smtp地址,在本地code
telnet smtp.xdf.cn 25
本地25端口通;htm
在阿里云服务器上,测试不通
[root@xxx]# telnet smtp.xdf.cn 25 Trying 116.213.222.46... telnet: connect to address 116.213.222.46: Connection timed out
而后,晓得了,阿里云的25端口默认是封掉的,须要申请25端口解封
解封地址:https://help.aliyun.com/knowledge_detail/56130.html?spm=5176.11065259.1996646101.searchclickresult.777527b9DcosUg
申请时,须要填写哪些服务器须要解封及关联的域名是哪个(注意:提交解封申请后,通常您在一个工做日内会收到反馈。)