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

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

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

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

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

Jenkins 配置邮件发送服务

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

线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第1张图片
管理员邮件地址
线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第2张图片
SMTP配置中的邮件地址
  • 如果你是采用的一般邮箱的 SMTP 邮箱,错误提示会比较友好 “553 Mail from must equal authorized user”,错误栈如下:


    线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第3张图片
    友好的错误提示.png
  • 如果你采用的是一些企业邮箱(例如网易企业邮箱),错误提示会让你莫名其妙,误导你排查问题,例如 “com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.1 authentication is required”,错误栈如下:


    线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第4张图片
    糟糕的错误提示.png

Gitlab 配置邮件发送服务

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

  • 普通 SMTP 端口连接方式


    线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第5张图片
    普通 SMTP 端口连接方式
  • SSL SMTP 端口连接方式


    线上环境配置邮件发送服务(Jenkins、Gitlab 等)_第6张图片
    SSL SMTP 端口连接方式

你可能感兴趣的:(线上环境配置邮件发送服务(Jenkins、Gitlab 等))