利用阿里云“邮件推送”来配置GitLab发送邮件

一般大型服务商对邮件推送的端口(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中尝试发送验证邮件,成功!

相关推荐
Python私教13 小时前
AI 并行编码的 Worktree 生命周期:创建、隔离与安全回收
人工智能·git
互联网中的一颗神经元14 小时前
16 — 改写历史 rebase:搬家到新楼层,不是合并
git
互联网中的一颗神经元18 小时前
19 — 贮藏与清理:stash 是抽屉,gc 是打包箱
git
用户3301448676319 小时前
20 — 远程进阶:强制推送的保险绳——force-with-lease
git
Cooper2520 小时前
别急着改 Git 历史:rebase、cherry-pick、bisect 与 reflog 的安全操作顺序
git
刚入门的大一新生21 小时前
Linux-版本控制器Git
git
扶苏100221 小时前
同一个 Git 项目整出两份,切分支互不影响?两种方案实测
大数据·git·elasticsearch
ZJU_统一阿萨姆21 小时前
【Git】Github 开源许可证详解
git·开源·github
Geek-Chow2 天前
Git 标签与发布流程:轻量标签、附注标签与签名标签
git·tags
wear工程师2 天前
Git 冲突怎么解决:别只删标记,先看懂暂存区的 1、2、3 阶段
git