SpringBoot项目部署在VPS服务器Tomcat中邮件发送认证问题求助
SpringBoot项目部署在VPS服务器Tomcat中邮件发送认证问题求助
各位大佬好,我最近碰到个棘手的问题:我的SpringBoot项目在本地Tomcat上跑起来完全没问题,但部署到VPS上的Tomcat后,就卡在邮件发送的认证环节了,项目直接报错。
先给大家贴一下我从服务器日志里抓的关键内容(用tail -f命令跟踪/opt/tomcat/logs/catalina.out得到的):
root@api:~# tail -f /opt/tomcat/logs/catalina.out at javax.mail.Service.connect(Service.java:342) ~[jakarta.mail-1.6.7.jar:1.6.7] at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518) ~[spring-context-support-5.3.20.jar:5.3.20] at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:437) ~[spring-context-support-5.3.20.jar:5.3.20] ... 62 common frames omitted 2024-07-20 07:07:10.890 DEBUG 561029 --- [nio-8080-exec-9] o.s.web.servlet.DispatcherServlet : "FORWARD" dispatch for POST "/global/error", parameters={}
从栈跟踪信息能看出来,核心问题出在javax.mail.Service.connect方法的认证环节,也就是连接邮件服务器的时候失败了。我自己琢磨了几个可能的原因,但还没找到确切的问题点:
- VPS的防火墙或者安全组没开放邮件服务需要的端口(比如SMTP常用的25、465、587端口),导致无法和邮件服务器建立连接
- 邮件服务商的反垃圾策略把我这个VPS的IP标记成了可疑地址,直接拒绝了认证请求
- 服务器上的邮件配置(比如
application.properties/application.yml里的用户名、密码、SMTP地址)和本地环境不一致,或者密码里的特殊字符在服务器环境中解析出了问题 - Tomcat的类加载冲突,服务器上自带的Jakarta Mail版本和我项目依赖的版本不兼容
有没有前辈碰到过类似的情况?麻烦给我分享下排查思路或者解决方案,真的非常感谢!
备注:内容来源于stack exchange,提问作者Manoj T J
相关产品推荐
相关产品推荐

