因为公司内网防火墙限制,当GitLab通过SendMail发送email给Gmail或者其他外网邮箱的时候,会出现如下错误:
Jul 14 06:48:14 gitlab sm-mta[12379]: r6C7HnCZ024915: to=<mmm@pku.edu.cn>, delay=1+15:30:25, xdelay=00:00:00, mailer=esmtp, pri=21452479, relay=mx1.pku.edu.cn., dsn=\
4.0.0, stat=Deferred: Connection timed out with mx1.pku.edu.cn.
解决办法就是配置SendMail,让它使用公司内部的SMTP服务器发送email。配置很简单, 在/etc/mail/sendmail.mc文件中末尾加上一行:
define(`SMART_HOST',`smtp.mycompany.com')
然后做个测试,创建一个文本文件:
To: csfreebird@gmail.com
Subject: test sendmail in esri
From: gitlab@mycompany.com
test gmail
运行命令:
root@gitlab:/opt# sendmail -vt < /opt/mail.txt
检查邮箱,发送成功。
好了,这下GitLab可以畅通无阻的发送email给所有邮箱了。