线上环境配置邮件发送服务(Jenkins、Gitlab 等)

这几天在配置一些线上软件的邮件发送服务时候遇到了很多坑,记录一下,好记性不如烂笔头。

云服务中配置邮件发送服务注意事项

一般的云服务商都是在网络层屏蔽对外请求 25 号端口,目的是防止产生大量的垃圾邮件,国内外主流的云服务商都是采用了这条规则。当然有些云服务在后台提出工单之后会允许连接 25 号端口,但有些云服务采用“多一事不如少一事”的原则,拒绝开通。

如果对方拒绝开通,建议使用 SSL 端口,一般的邮件服务商都会提供的,例如网易免费企业邮的 SSL SMTP 端口是 994,不受此规则的影响。

Jenkins 配置邮件发送服务

配置邮件服务的时候采用 SMTP 机制,一定要注意到 SMTP 中的用户名要和 Jenkins Location 中的 “系统管理员邮件地址” 一致,否则无法发送邮件。

《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 管理员邮件地址
《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 SMTP配置中的邮件地址

  • 如果你是采用的一般邮箱的 SMTP 邮箱,错误提示会比较友好 “553 Mail from must equal authorized user”,错误栈如下:

    《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 友好的错误提示.png

  • 如果你采用的是一些企业邮箱(例如网易企业邮箱),错误提示会让你莫名其妙,误导你排查问题,例如 “com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.1 authentication is required”,错误栈如下:

    《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 糟糕的错误提示.png

Gitlab 配置邮件发送服务

配置的时候比较简单,主要分为通过普通 SMTP 端口和 SSL SMTP 端口进行连接两种方式。

  • 普通 SMTP 端口连接方式

    《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 普通 SMTP 端口连接方式

  • SSL SMTP 端口连接方式

    《线上环境配置邮件发送服务(Jenkins、Gitlab 等)》 SSL SMTP 端口连接方式

    原文作者:odirus
    原文地址: https://www.jianshu.com/p/878f75f164f6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞