配置 Gitlab 以将 Gmail SMTP 用于出站邮件

本教程将介绍如何配置 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 设置