在Linux上配置GitLab的邮件服务可以通过以下步骤完成。这些步骤假设你已经安装并运行了GitLab,并且具有root或sudo权限。
GitLab推荐使用Postfix作为邮件传输代理(MTA)。以下是在基于Debian的系统(如Ubuntu)上安装Postfix的命令:
sudo apt-get update
sudo apt-get install postfix
在安装过程中,系统会提示你选择Postfix的配置类型。选择“Internet Site”并设置系统邮件名称。
编辑Postfix的主配置文件 /etc/postfix/main.cf:
sudo nano /etc/postfix/main.cf
添加或修改以下配置项:
myhostname = gitlab.example.com # 替换为你的GitLab主机名
mydomain = example.com # 替换为你的域名
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, $mydomain
home_mailbox = Maildir/
保存并退出编辑器。
编辑GitLab的配置文件 /etc/gitlab/gitlab.rb:
sudo nano /etc/gitlab/gitlab.rb
找到并修改以下配置项:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com" # 替换为你的SMTP服务器地址
gitlab_rails['smtp_port'] = 587 # 替换为你的SMTP服务器端口
gitlab_rails['smtp_user_name'] = "your-smtp-user@example.com" # 替换为你的SMTP用户名
gitlab_rails['smtp_password'] = "your-smtp-password" # 替换为你的SMTP密码
gitlab_rails['smtp_domain'] = "example.com" # 替换为你的域名
gitlab_rails['smtp_authentication'] = "login" # 或者 "cram_md5", "plain", "digest-md5"
gitlab_rails['smtp_enable_starttls_auto'] = true
保存并退出编辑器。
运行以下命令以应用新的配置:
sudo gitlab-ctl reconfigure
你可以通过GitLab的Rails控制台测试邮件发送功能:
sudo gitlab-rails console
在控制台中输入以下命令:
Notifier.test_email('test@example.com').deliver_now
如果一切配置正确,你应该会收到一封测试邮件。
如果你启用了防火墙,确保SMTP端口(通常是587)是开放的:
sudo ufw allow 587/tcp
最后,重启Postfix服务以应用所有更改:
sudo systemctl restart postfix
完成这些步骤后,你的GitLab实例应该能够通过配置的SMTP服务器发送邮件了。