SpringBoot 整合163邮箱 阿里云25端口问题
SpringBoot 整合163邮箱阿里云25端口问题
使用 163 邮箱 SMTP服务器 非SSL协议 25端口,项目本地测试时没有问题, 但是发布到阿里云服务器就报错
经检查发现阿里云出于安全考虑封禁了25端口, 解决方案更换为SSL协议 使用465端口
异常信息:
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;nested exception is:java.net.ConnectException: 连接超时 (Connection timed out). Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;nested exception is:java.net.ConnectException: 连接超时 (Connection timed out)at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:448)at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:361)at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:356)at cn.decentchina.kentucky.merchant.utils.JavaMailMessageUtils.sendMall(JavaMailMessageUtils.java:81)at cn.decentchina.kentucky.merchant.utils.JavaMailMessageUtils.sendFileMail(JavaMailMessageUtils.java:46)at cn.decentchina.kentucky.merchant.code.exchange.service.impl.CodeCardBatchServiceImpl.getSimpleMessage(CodeCardBatchServiceImpl.java:593)at cn.decentchina.kentucky.merchant.code.exchange.service.impl.CodeCardBatchServiceImpl.cardListSend(CodeCardBatchServiceImpl.java:379)at cn.decentchina.kentucky.merchant.code.exchange.service.impl.CodeCardBatchServiceImpl$$FastClassBySpringCGLIB$$56a01fec.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)at cn.decentchina.kentucky.merchant.code.exchange.service.impl.CodeCardBatchServiceImpl$$EnhancerBySpringCGLIB$$1b17249b.cardListSend(<generated>)at cn.decentchina.kentucky.merchant.code.exchange.service.impl.CodeCardBatchServiceImpl$$FastClassBySpringCGLIB$$56a01fec.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747)at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
pom.xml
<!--邮箱--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
application.yml
spring: mail:host: smtp.163.compassword: 授权码(163邮箱非登录密码)username:用户名default-encoding: UTF-8protocol: smtpport: 465properties:mail:smtp:auth: truesocketFactory:class: javax.net.ssl.SSLSocketFactoryport: 465ssl:enable: truestarttls:enable: truerequired: true
java
@Component
public class JavaMailMessageUtils {/*** 邮件主题最大长度*/private static final Integer MAX_LENGTH = 270;@Resourceprivate JavaMailSender javaMailSender;@Value("${spring.mail.username}")private String userName;/*** 发送邮件** @param to 接收方* @param subject 主题* @param text 信息* @param file 文件*/public void sendFileMail(String to, String subject, String text, File file) throws MessagingException {// 如果主题长度超过最大值,显示...if (StringUtils.isNotBlank(subject) && subject.length() > MAX_LENGTH) {subject = subject.substring(0, MAX_LENGTH - 3) + "...";}sendMall(new String[]{to}, subject, text, file);}/*** 发送邮件** @param to 接收方* @param subject 主题* @param text 信息* @param file 文件*/public void sendFileMail(String[] to, String subject, String text, File file) throws MessagingException {// 如果主题长度超过最大值,显示...if (StringUtils.isNotBlank(subject) && subject.length() > MAX_LENGTH) {subject = subject.substring(0, MAX_LENGTH - 3) + "...";}sendMall(to, subject, text, file);}private void sendMall(String[] toArr, String subject, String text, File file) throws MessagingException {System.setProperty("mail.mime.splitlongparameters", "false");MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);if (ArrayUtils.getLength(toArr) == 1) {mimeMessageHelper.setTo(toArr[0]);} else {mimeMessageHelper.setTo(toArr);}mimeMessageHelper.setFrom(userName);mimeMessage.setSubject(subject);mimeMessageHelper.setText(text, true);if (Objects.nonNull(file)) {FileSystemResource attachFile = new FileSystemResource(file);mimeMessageHelper.addAttachment(file.getName(), attachFile);}javaMailSender.send(mimeMessage);}
}
SpringBoot 整合163邮箱 阿里云25端口问题相关推荐
- 阿里云25端口解封教程完美解决25端口封禁的方法
阿里云25端口解封教程完美解决25端口封禁的方法 阿里云25端口解封申请教程 用户想要使用25端口进行对外连接,可以在安全管控平台中提交25端口解封申请,可以参考官方文档(TCP 25端口解封申请- ...
- 完美解决阿里云25端口申请解封教程
阿里云服务器25端口默认是封禁的,基于25端口的邮件服务是用不了的,想要使用25端口怎么办?端口号分享阿里云服务器25端口解封教程: 阿里云25端口解封方法 出于安全考虑,阿里云默认封禁TCP25端口 ...
- 禅道邮箱配置163邮箱/阿里云邮箱区别
禅道邮箱配置163邮箱/阿里云邮箱区别 禅道支持邮件提醒,当需求.任务.bug等发生变化的时候,可以发邮件提醒.邮件的配置方法如下: 使用管理员登录禅道. 进入后台管理,点击"发信配置&qu ...
- SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件
JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP.POP3.IMAP 一.SpringBoot整合 1.需要在pom文件中添加依赖spring-boot-starter-m ...
- SpringBoot整合redis实现阿里云短信验证
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId ...
- 解决springboot项目部署到阿里云服务器邮箱无法发送邮件
解决springboot项目部署到阿里云服务器邮箱无法发送邮件 前言:今天部署了一下springboot项目,使用的是docker部署的,如果有兴趣可以看我这篇文章: docker上部署前后端分离的s ...
- 保姆级教程——将springboot项目部署到阿里云服务器(小白包会)
保姆级教程--将springboot项目部署到阿里云服务器(小白包会) 前言: 昨天本想着看论文,结果发现找的论文和课题不一致.那干点什么好呢?那就把我的毕业设计(一个springboot项目)部署到 ...
- 阿里云服务器端口访问失败 问题解决
阿里云服务器端口访问失败 项目部署新的阿里云服务器上, 添加安全组端口后,还是无法访问的解决方案 打开本地cmd,telnet IP+端口 查看端口是否可以连通 如果不通,在服务器上防火墙添加对应端口 ...
- 国内yum源的安装(163,阿里云,epel)
转载至 https://www.cnblogs.com/imweihao/p/7357484.html 国内yum源的安装(163,阿里云,epel) ----阿里云镜像源 1.备份 mv /etc ...
最新文章
- centos删除系统自带的httpd
- android 调整字体,android设置:调整字体大小
- 币安布局去中心化交易所,原来是因为这三个原因!
- php new static,PHP面向对象中new self( )和 new static( ) 的区别
- DIY 主机 所有AMD IntelCPU及主板
- 不经意传输(oblivious transfer)
- 11g Rman新特性SET NEWNAME
- multipartfile转excel_SpringMVC 上传文件 MultipartFile 转为 File的方法
- 穷人和富人在处事方式上的区别
- 四大门户金融业务接连中招,流量这把钥匙正被氧化
- Atitit 视图状态ViewState)的原理与管理
- 红旗Linux 网卡bond,Linux双网卡绑定一个IP的实现
- 叉乘:基于虚拟线圈法的车流量统计
- 教程:利用艾斯PM3GUI软件助手,帮你查IC卡漏洞
- 论网站CDN的绕过姿势
- 统计|(可/无)重复双因素方差分析一般步骤及分析表
- 校赛热身赛 Problem D. Unsolved Mystery
- PowerBI-时间智能函数-DATEADD
- 计算机体系结构讲解,计算机体系结构 | x86 架构的讲解
- First visit and every visit MC