Jenkins邮件通知触发成功但未收到邮件,需额外配置吗?
Jenkins邮件显示触发成功但未收到的排查方案
这种情况我之前也碰到过好几次,控制台日志显示发送成功但收不到邮件,大概率是SMTP配置细节遗漏或者邮件被拦截了,咱们一步步来排查:
1. 先验证SMTP配置的有效性
- 优先用Jenkins自带的测试功能:在「Extended E-Mail Notification」配置页面,找到「Test configuration by sending test e-mail」,输入你的测试邮箱发送测试邮件。
- 如果测试失败,直接看报错信息:
- 检查端口是否匹配:比如主流邮箱的TLS端口是587,SSL是465,企业邮箱可能有自定义端口
- 加密方式要对应:SMTP服务器要求TLS就不能选SSL,反之亦然
- 密码是否正确:很多邮箱(如QQ、网易、Outlook)需要用授权码代替登录密码,不是你平时登录邮箱的密码
- 如果测试成功但构建后收不到,继续往下排查
- 如果测试失败,直接看报错信息:
2. 检查任务级别的邮件配置
- 确认构建任务的「Post-build Actions」里是否添加了Editable Email Notification:只配置全局SMTP是不够的,必须在任务里添加这个动作,才能触发邮件发送
- 核对任务里的收件人设置:控制台显示的
Sending email to: arunxp@XXX.com是否和你实际期望的一致?有没有拼写错误? - 检查邮件内容:如果邮件主题或正文为空,很多邮箱服务商直接会把这类邮件判定为垃圾邮件并丢弃,建议先设置一个简单的测试内容
3. 排查邮件被拦截的可能
- 先查垃圾箱/垃圾邮件文件夹:Jenkins发送的邮件因为发件人是服务器地址,很容易被当成垃圾邮件,尤其是第一次发送时
- 企业邮箱需联系IT部门:如果用的是公司内部邮箱,可能需要将Jenkins服务器的IP加入邮件服务器的白名单,或者确认是否有反垃圾规则拦截了这类邮件
- 查看邮件原始头(如果能在垃圾箱找到):打开邮件的原始头信息,里面会有明确的拒收原因,比如
550 5.7.1 Access denied(权限不足)、554 5.7.1 Spam detected(被判定为垃圾)等
4. 开启Jenkins DEBUG日志找细节
控制台日志只显示表面的成功信息,实际发送过程可能有隐藏错误:
- 进入Jenkins的「系统管理 → 系统日志」,点击「Add new log recorder」
- 日志记录器名称随便填(比如
EmailDebug),然后添加两个日志项:hudson.tasks.Mailer(对应原生邮件通知)hudson.plugins.emailext(对应Extended E-Mail插件)
- 把这两个日志项的级别都设为
DEBUG,保存后重新触发构建 - 查看新生成的DEBUG日志,里面会有SMTP连接、认证、发送的完整过程,能精准定位问题
5. 服务器层面的连通性测试
- 在Jenkins服务器上用命令行测试SMTP连通性:
- TLS端口测试:
telnet smtp.your-domain.com 587 - SSL端口测试:
openssl s_client -connect smtp.your-domain.com:465
如果连接失败,说明Jenkins服务器无法访问SMTP服务器,可能是防火墙或网络策略限制了
- TLS端口测试:
如果以上步骤都排查完还是没解决,把DEBUG日志里的关键错误信息贴出来,能更快定位问题。
内容的提问来源于stack exchange,提问作者arunkumar sambu
相关产品推荐
相关产品推荐

