一般大型服务商对邮件推送的端口(25)都做了关闭,这使得我在配置GitLab的邮件认证服务的时候,遇到了匆匆阻碍。本来想使用Postfix来进行邮件的推送,很多教程也是这样教学的,但是Postfix没有办法更改邮件推送的端口,如果要改,还要另外配置一个中转的SMTP服务器,这就显得非常的臃肿了。
本来其实这也就是一件小事,因为我配置的这个GitLab服务器,本身使用的人数并不会太多,而邮件服务最多运用于用户注册及推送。但是我就是一个如果遇到问题就一定要想办法解决的人!!生命不止,折腾不止!
后来想到的解决方法是不使用Postfix,在gitlab上直接配置qq邮箱的SMTP,但是无论怎么尝试,都没有办法发出邮件。SPF 和 DMARC 都配置了也还是发不出去。qq邮箱又不能获取DKIM公钥(企业邮箱可以),不得不说qq邮箱是真不好用......
就在不知所措的时候,在阿里云发现一个可用的服务------邮件推送 ,它能够通过80 端口来发送邮件,完美的解决了我的问题。
那就一起来看看怎么利用阿里云的邮箱推送来配置GitLab发送邮件。
1. 获取邮件推送 SMTP 服务器信息
首先,在左侧找到发件域名,点击右上角的新建域名。
登记一个用于发件的域名,最好是二级域名 (例如 mail.xxx.com)。点击配置,按照配置中的提示,去DNS服务商进行域名解析的配置。
配置完毕,点击验证,所有通过验证会显示可使用。
然后在左侧点击发件地址,找到新建发件地址。发件域名选择刚刚验证通过的域名。设置好后点击确定。
最后点击设置SMTP密码,设置密码。建议随机生成一串字符串。
2. 在gitlab配置文件中进行配置:
然后根据网站上的提示:
SMTP服务地址: smtpdm.aliyun.com ,SMTP服务端口号:25或80或465(SSL加密)。
编辑gitlab的配置文件。
sudo vim /etc/gitlab/gitlab.rb
找到配置邮箱的这个模块,按照下面的提示填写:
bash
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtpdm.aliyun.com" #SMTP地址
gitlab_rails['smtp_port'] = 80 #端口,可选25,80,465(SSL加密),25端口在阿里云无法使用,我选择了80端口
gitlab_rails['smtp_user_name'] = "xxx@xxx" #发信地址,同网页设置
gitlab_rails['smtp_password'] = "xxx" #设置的SMTP密码
gitlab_rails['smtp_domain'] = "xxx.xxx.com" #你的发信域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false #使用465 SSL端口则true
修改完成后,:wq 保存文件。
3. 应用配置并 重启 GitLab:
执行以下命令来重新配置并重启 GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
接下来到GitLab中尝试发送验证邮件,成功!