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端口问题相关推荐

  1. 阿里云25端口解封教程完美解决25端口封禁的方法

    阿里云25端口解封教程完美解决25端口封禁的方法 阿里云25端口解封申请教程 用户想要使用25端口进行对外连接,可以在安全管控平台中提交25端口解封申请,可以参考官方文档(TCP 25端口解封申请- ...

  2. 完美解决阿里云25端口申请解封教程

    阿里云服务器25端口默认是封禁的,基于25端口的邮件服务是用不了的,想要使用25端口怎么办?端口号分享阿里云服务器25端口解封教程: 阿里云25端口解封方法 出于安全考虑,阿里云默认封禁TCP25端口 ...

  3. 禅道邮箱配置163邮箱/阿里云邮箱区别

    禅道邮箱配置163邮箱/阿里云邮箱区别 禅道支持邮件提醒,当需求.任务.bug等发生变化的时候,可以发邮件提醒.邮件的配置方法如下: 使用管理员登录禅道. 进入后台管理,点击"发信配置&qu ...

  4. SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件

    JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP.POP3.IMAP 一.SpringBoot整合 1.需要在pom文件中添加依赖spring-boot-starter-m ...

  5. SpringBoot整合redis实现阿里云短信验证

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId ...

  6. 解决springboot项目部署到阿里云服务器邮箱无法发送邮件

    解决springboot项目部署到阿里云服务器邮箱无法发送邮件 前言:今天部署了一下springboot项目,使用的是docker部署的,如果有兴趣可以看我这篇文章: docker上部署前后端分离的s ...

  7. 保姆级教程——将springboot项目部署到阿里云服务器(小白包会)

    保姆级教程--将springboot项目部署到阿里云服务器(小白包会) 前言: 昨天本想着看论文,结果发现找的论文和课题不一致.那干点什么好呢?那就把我的毕业设计(一个springboot项目)部署到 ...

  8. 阿里云服务器端口访问失败 问题解决

    阿里云服务器端口访问失败 项目部署新的阿里云服务器上, 添加安全组端口后,还是无法访问的解决方案 打开本地cmd,telnet IP+端口 查看端口是否可以连通 如果不通,在服务器上防火墙添加对应端口 ...

  9. 国内yum源的安装(163,阿里云,epel)

    转载至  https://www.cnblogs.com/imweihao/p/7357484.html 国内yum源的安装(163,阿里云,epel) ----阿里云镜像源 1.备份 mv /etc ...

最新文章

  1. centos删除系统自带的httpd
  2. android 调整字体,android设置:调整字体大小
  3. 币安布局去中心化交易所,原来是因为这三个原因!
  4. php new static,PHP面向对象中new self( )和 new static( ) 的区别
  5. DIY 主机 所有AMD IntelCPU及主板
  6. 不经意传输(oblivious transfer)
  7. 11g Rman新特性SET NEWNAME
  8. multipartfile转excel_SpringMVC 上传文件 MultipartFile 转为 File的方法
  9. 穷人和富人在处事方式上的区别
  10. 四大门户金融业务接连中招,流量这把钥匙正被氧化
  11. Atitit 视图状态ViewState)的原理与管理
  12. 红旗Linux 网卡bond,Linux双网卡绑定一个IP的实现
  13. 叉乘:基于虚拟线圈法的车流量统计
  14. 教程:利用艾斯PM3GUI软件助手,帮你查IC卡漏洞
  15. 论网站CDN的绕过姿势
  16. 统计|(可/无)重复双因素方差分析一般步骤及分析表
  17. 校赛热身赛 Problem D. Unsolved Mystery
  18. PowerBI-时间智能函数-DATEADD
  19. 计算机体系结构讲解,计算机体系结构 | x86 架构的讲解
  20. First visit and every visit MC

热门文章

  1. mysql perror,perror的使用
  2. Python实现抓取斗鱼实时弹幕
  3. 改变声音的方法有很多,推荐这三种
  4. 通过IP获取准确地址,精确到县/区
  5. while my guitar gently weeps
  6. SD-WAN重构分支网络 不仅仅是节约成本
  7. python十进制小数转二进制_在python中如何将十进制小数转换成二进制
  8. 阴阳师 脚本 较多功能版本 源码 不知道失效与否 有源码文件
  9. Linux下生成HTTPS证书申请与颁发方法
  10. C语言:三天打渔两天晒网