这几天在配置一些线上软件的邮件发送服务时候遇到了很多坑,记录一下,好记性不如烂笔头。
云服务中配置邮件发送服务注意事项
一般的云服务商都是在网络层屏蔽对外请求 25 号端口,目的是防止产生大量的垃圾邮件,国内外主流的云服务商都是采用了这条规则。当然有些云服务在后台提出工单之后会允许连接 25 号端口,但有些云服务采用“多一事不如少一事”的原则,拒绝开通。
如果对方拒绝开通,建议使用 SSL 端口,一般的邮件服务商都会提供的,例如网易免费企业邮的 SSL SMTP 端口是 994,不受此规则的影响。
Jenkins 配置邮件发送服务
配置邮件服务的时候采用 SMTP 机制,一定要注意到 SMTP 中的用户名要和 Jenkins Location 中的 “系统管理员邮件地址” 一致,否则无法发送邮件。
管理员邮件地址
SMTP配置中的邮件地址
如果你是采用的一般邮箱的 SMTP 邮箱,错误提示会比较友好 “553 Mail from must equal authorized user”,错误栈如下:
友好的错误提示.png
如果你采用的是一些企业邮箱(例如网易企业邮箱),错误提示会让你莫名其妙,误导你排查问题,例如 “com.sun.mail.smtp.SMTPSenderFailedException: 550 5.7.1 authentication is required”,错误栈如下:
糟糕的错误提示.png
Gitlab 配置邮件发送服务
配置的时候比较简单,主要分为通过普通 SMTP 端口和 SSL SMTP 端口进行连接两种方式。
普通 SMTP 端口连接方式
普通 SMTP 端口连接方式
SSL SMTP 端口连接方式
SSL SMTP 端口连接方式