Spring Boot本地测试邮件:已投递至服务器但未收到
邮件发送成功但未收到的排查方案
本地使用Spring Boot进行邮件测试,application.properties配置如下:
spring.mail.host=mail.abc.com spring.mail.port=25 spring.mail.username=manager@abc.com spring.mail.password=password调试模式运行代码时,日志显示“DEBUG SMTP: message successfully delivered to mail server”,但并未收到邮件。
检查邮件是否进入垃圾箱/分类文件夹
多数邮箱系统会将陌生发件人、批量发送的邮件自动归类到垃圾箱、订阅邮件或其他过滤文件夹,优先去这些位置查找,不要只看收件箱。验证收件人地址准确性
确认代码中指定的收件人邮箱无拼写错误,比如域名后缀错误、用户名少打字符等低级错误。查询邮件服务器的投递日志
联系公司邮件服务器管理员,调取manager@abc.com账号的发送日志。Spring日志仅表明邮件成功投递到本地SMTP服务器,但服务器向收件方邮箱转发的环节可能出现拒收、域名解析失败等问题,这些只有服务器日志能查到。排查邮件内容是否触发反垃圾规则
若邮件标题或内容包含敏感词汇(如“中奖”“转账”“免费”)、或内容过于空洞无实质信息,很可能被收件方邮件系统拦截。可以发送一段简单的测试文本(如“这是一封Spring Boot测试邮件”)重新尝试。完善SMTP配置并开启详细日志
当前配置仅包含基础参数,建议补充配置以开启更详细的调试信息,同时确认是否需要加密传输:# 开启更详细的邮件调试日志 logging.level.org.springframework.mail=DEBUG logging.level.com.sun.mail=DEBUG # 若服务器要求STARTTLS加密,添加以下配置(适配25/587端口) spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.ssl.trust=mail.abc.com部分25端口的服务器会强制要求加密传输,未开启的话邮件可能被标记为不安全,后续投递被拦截。
测试发送到不同类型邮箱
分别尝试发送到公司内部邮箱和外部个人邮箱(如QQ、网易邮箱):- 若内部能收到、外部收不到,大概率是公司邮件服务器的出站规则限制了对外发送;
- 若都收不到,重点排查邮件服务器本身的投递能力或配置问题。
内容的提问来源于stack exchange,提问作者Ish Fady
相关产品推荐
相关产品推荐

