问题
在本地发邮件没问题,但是在ECS上发送邮件一直超时,报错:
Couldn't connect to host, port: smtp.163.com, 25;
原因
阿里云禁止25端口出口数据。
https://help.aliyun.com/knowledge_detail/56130.html
解决:
按上面网址说的申请解封
使用SSL 465 端口发送
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.host}"/>
<property name="username" value="${mail.username}"></property>
<property name="password" value="${mail.password}"></property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.socketFactory.port">465</prop>
<prop key="mail.smtp.port">465</prop>
</props>
</property>
</bean>
//SimpleMailMessages实现了MimeMessageHelper,为普通邮件模板,支持文本。
SimpleMailMessage smm = new SimpleMailMessage();
// 设定邮件参数
smm.setFrom(mailSender.getUsername());
smm.setTo("XXXXXX@qq.com");
smm.setSubject("Hello world");
smm.setText("nice !");
// 发送邮件
mailSender.send(smm)
参考:http://www.cnblogs.com/hehaiyang/p/4279201.html