利用阿里云“邮件推送”来配置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中尝试发送验证邮件,成功!

相关推荐
CoderJia程序员甲36 分钟前
GitHub 热榜项目 - 日榜(2026-02-08)
git·ai·开源·llm·github
Serene_Dream2 小时前
git 常用命令
git
jiayong232 小时前
Detached HEAD 状态详解
git
李少兄12 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说17 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道21 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力21 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠1 天前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东1 天前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应1 天前
使用SSH地址拉取远程仓库代码报下面的错误
git