云服务器不能发邮件的解决方法

        最近把一个项目部署到阿里云服务器上了,项目的其他页面都可以在浏览器上显示出来。需要实现的功能是点击注册按钮是需要通过发送一封邮件给注册的邮箱,客户通过点击邮箱的链接来激活注册的账号。但是在注册页面,用户点击注册按钮页面却卡了很久,结果报错是连接超时。一直以为是我代码错了,但是在本地的Tomcat上运行代码,项目却完美运行,可以打卡注册页面可以点击注册按钮,注册成功后服务器发送了一封邮箱到客户端。客户端点击链接可以激活账号。在云服务器上就报错连接超时,错误日志如下:

root cause

java.net.ConnectException: Connection timed out (Connection timed out)
	java.net.PlainSocketImpl.socketConnect(Native Method)
	java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	java.net.Socket.connect(Socket.java:589)
	java.net.Socket.connect(Socket.java:538)
	com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:267)
	com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
	com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1511)
	com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453)
	javax.mail.Service.connect(Service.java:313)
	javax.mail.Service.connect(Service.java:172)
	javax.mail.Service.connect(Service.java:121)
	javax.mail.Transport.send0(Transport.java:190)
	javax.mail.Transport.send(Transport.java:120)
	cn.itcast.mail.MailUtils.send(MailUtils.java:91)
	cn.itcast.goods.user.service.UserService.regist(UserService.java:140)
	cn.itcast.goods.user.web.servlet.UserServlet.regist(UserServlet.java:86)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)
	cn.itcast.servlet.BaseServlet.service(BaseServlet.java:44)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	cn.itcast.filter.EncodingFilter.doFilter(EncodingFilter.java:30)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.76 logs.

然后我找查了许多资料,具体步骤如下:

首先我查看了一下自己云服务器的安全组,点击配置规则。


查看一下入方向,和出方向的端口设置。-1/-1是全部的端口。


出方向端口阿里云默认是全开的。


再看看服务器的控制面板(我用的是宝塔控制面板)。


然后发现还是不行,这是我之前所想到的步骤。

最后让我郁闷的是,原因发现是阿里云服务器把邮件的默认25端口给禁用掉了。气死我了,害得我找错误找了好久,画个圈圈诅咒阿里。哎!不过还是要保持微笑└( ̄︶ ̄)┘。阿里云把邮件的默认25端口给禁用掉了,是为了不让某些人乱使用邮箱发送造成邮件泛滥,好吧,这个理由勉强接受了!那么怎么去解封25端口呢,我百度查了下资料,那个25端口解封功能隐藏的太深,费了好大个功能终于是找到了,如下图,说下菜单的是如何点击到25端口解封功能的,以下是解封的步骤:

1.找回自我

2.安全管理


3.找到25端口解封

4.申请解封


5.填写申请的 IP 和对应的邮箱域名,服务器 IP 一定要是 阿里云账号下的服务器,域名是邮箱服务器供应商的域名 , 客户是自己买的阿里云邮箱,如163邮箱域名是:smtp.163.com   。其他126邮箱,qq邮箱,  雅虎邮箱,这里就不一一罗列,可以去对应的邮箱里面找下就好,切记这个邮箱域名很重要配置不好审核就通不过。


6.如实填写


7.填写之后确定后就边画圈圈边等待阿里云客服审核就行,一般最多7个工作日就好了。




猜你喜欢

转载自blog.csdn.net/superman___007/article/details/80682744