本人一直从事JAVA后端开发,但一直想作一个本身的网站.为了学习和了解更多.因此没用建站程序,是本身一行一行敲HTLM和JS码出来的.本人码后端还行,可是前端真的是太水了.截至目前,前端在移动端显示效果仍是很是糟糕.固然,我也一直在改.也但愿Osc大佬多给我意见和指导.html
好了,说说今天的问题(http://www.wejias.com/html/article/article-7.html):前端
BUG背景java
今日下午,找Q群里伙伴帮忙点点各处功能。兄弟们很热情,在此谢过了。固然,我谢谢尚未说出口,各类说问题的声音,此起彼伏,一浪接一浪。虽然音浪很强,但此时个人心里甚至毫无波动(由于前端确实不少BUG)。但忽然在众多浪叫声中,一哥哥的声音特别刺耳,只因他说,他卡死了。这样的话,我听到是,很是惊慌的呀。我前端浪就算了,怎么还有卡死这样的问题呢。内心和全部程序猿第一反应同样同样的:"这不科学呀,我这里没有问题呀..."但在事实面前,再加上我又是求人帮忙测试,这时我低下高傲的头颅.去问状况了.后端
吾:怎么卡死的...不该该呀安全
兄:就直接卡死了服务器
吾:有什么操做么(此时心里很懵逼呀,直接卡死,是什么鬼)socket
兄:没有,就以前点了个验证码。学习
至此,我陷入无限的沉思中。我用的云服务器提供的免费邮箱服务,不至由于免费送的,就这么弱鸡呀。测试
找缘由网站
1.分析
2.验证
a.查看API项目日志找到以下信息:
DEBUG SMTP: trying to connect to host "***.****.***", port 25, isSSL false Exception: Could not connect to SMTP host: ***.****.***, port: 25;
b.此时对SMTP地址进行PING,能通,没有问题.而后TELNET,发现不行.但此时比较奇怪的是,我在本地WINDOWS上没有任何问题的
c.此时以为应该,我机器防火墙有问题,准备直接去修改,但转念一想,我没有禁过这个端口
d.因而到阿里云服务器官网查了一下,发现阿里为了云服务器安全,全部机器25出方向默认禁止,须要提工单解封见网址:
同是也有一些别的解决方案,好比用465 SSL进行发送。因为考虑到工单能够要晚一点官方才能解决,因此就决定用第二种方式试一把。
解决问题
修改代码将原来运用25发送改成用465,主要代码以下:
import java.util.Properties; Properties properties = new Properties(); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.host", ConfigHelper.getSMTP());//SMTP地址 properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.put("mail.smtp.socketFactory.port", ConfigHelper.getSMTPPort());//其值为465 properties.put("mail.smtp.port", ConfigHelper.getSMTPPort()); properties.put("mail.user", ConfigHelper.getFromEmail()); properties.put("mail.password", ConfigHelper.getSMTPPassword()); // 访问SMTP服务时须要提供的密码 properties.put("mail.smtp.ssl.enable", "true");// 设定用SSL方式 //下面这行的实际内容("mail.transport.protocol","smtp") properties.setProperty(ConfigHelper.getMailTransportProtocol(), ConfigHelper.getMailTransportProtocolValue());
测试OK.
到此,问题解决。谢谢,QQ群众兄弟.
此贴问题在我本身的网也发布了,若是有遇到相似的问题兄弟,可参考原文.