本教程将介绍如何配置 Gitlab 以将 Gmail SMTP 用于出站邮件。 在我们之前的教程中,我们学习了如何安装和设置 Gitlab CE。
在 Debian 11 上安装 Gitlab CE
在 Ubuntu 20.04 上安装带有 SSL/TLS 证书的 Gitlab
配置 Gitlab 以将 Gmail SMTP 用于出站邮件
Gitlab 可以配置为使用 Sendmail 或 Postfix 来中继电子邮件。 但是,如果您想将其配置为通过 Gmail SMTP 发送电子邮件,请按以下步骤操作。
配置 Gitlab Gmail 服务器设置
打开Gitlab配置文件进行编辑;
vim /etc/gitlab/gitlab.rb
导航 ### Gitlab email server settings section
, 取消注释(通过删除散列,# 在行的开头)并在下面的行中更新适当的值;
# gitlab_rails['smtp_enable'] = true # gitlab_rails['smtp_address'] = "smtp.server" # gitlab_rails['smtp_port'] = 465 # gitlab_rails['smtp_user_name'] = "smtp user" # gitlab_rails['smtp_password'] = "smtp password" # gitlab_rails['smtp_domain'] = "example.com" # gitlab_rails['smtp_authentication'] = "login" # gitlab_rails['smtp_enable_starttls_auto'] = true # gitlab_rails['smtp_tls'] = false # gitlab_rails['smtp_pool'] = false ... # gitlab_rails['smtp_openssl_verify_mode'] = 'none'
如下图所示。
确保您更换 [email protected]
使用您正确的 Gmail ID,例如, [email protected]
.
同样,替换值 email-id-password
使用您的 Gmail 帐户密码。
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "[email protected]" gitlab_rails['smtp_password'] = "email-id-password" gitlab_rails['smtp_domain'] = "smtp.gmail.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false # gitlab_rails['smtp_pool'] = false ... gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
Save 完成编辑后退出配置文件。
加密 Gitlab Gmail SMTP 凭证
如果不是按照下面的行定义的纯文本形式设置凭据,如上所示;
gitlab_rails['smtp_user_name'] = "[email protected]" gitlab_rails['smtp_password'] = "email-id-password"
您可以出于安全目的对它们进行加密。
加密 Gitlab Gmail SMTP 凭据;
- 通过运行以下命令更新加密的 YAML 文件中的用户名和密码。 你可以在下面的命令中使用你喜欢的编辑器而不是 VIM;
gitlab-rake gitlab:smtp:secret:edit EDITOR=vim
该命令打开一个文件。 取消注释行并为用户名和密码设置正确的值。
password: 'email-id-password' user_name: '[email protected]'
Save 并退出文件。
加密的配置存储在文件中, /var/opt/gitlab/gitlab-rails/shared/encrypted_settings/smtp.yaml.enc
.
接下来,删除这些行;
gitlab_rails['smtp_user_name'] = "[email protected]" gitlab_rails['smtp_password'] = "email-id-password"
从配置文件中,如果您已经通过运行以下命令配置了它们;
sed -i -r '/smtp_user_name|smtp_password/d' /etc/gitlab/gitlab.rb
重新配置 Gitlab 应用程序
接下来,重新配置 Gitlab 应用程序;
gitlab-ctl reconfigure
允许 Gmail 帐户安全性较低的应用程序访问
确保在上述配置中使用的 Gmail 帐户中打开安全性较低的应用程序访问。
您现在应该能够接收来自 Gitlab 的电子邮件。
例如,更新管理员的电子邮件、注销并尝试重置密码。
系统将提示您输入管理员的电子邮件地址,重置详细信息将发送至该地址。
示例密码重置电子邮件。
这就是如何轻松配置 Gitlab 以将 Gmail SMTP 用于出站邮件。
参考
Gitlab SMTP 设置