https://docs.gitlab.com.cn/omnibus/settings/smtp.html#example-configuration
163邮箱配置
由于国内我常用网易邮箱,而官网并没提供配置,所以特别提下。以下配置模板适合126和163邮箱。用户根据填入自己的邮箱名和邮箱密码即可。
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.126.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "xxx@126.com" gitlab_rails['smtp_password'] = "xxx" gitlab_rails['smtp_domain'] = "126.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'peer' |
常见问题及解决方法
这里有几个特别容易需要错误的地方,需要注意。
- 配置的密码不是邮箱的登陆密码而是网易邮箱的客户端授权密码, 在网易邮箱web页面的设置-POP3/SMTP/IMAP-客户端授权密码查看。
- 出现下面的文件未抵达的错误。
WARN: EOFError: end of file reached
这种错误是使用默认配置时,用的465端口。而126、163邮箱用的端口为25。
- 出现未授权账户错误
WARN: Net::SMTPFatalError: 553 Mail from must equal authorized user
这个错误可参考官方解释。原因是网易服务器smtp机器要求身份验证帐号和发信帐号必须一致,如果用户在发送邮件时,身份验证帐号和发件人帐号是不同的,因此拒绝发送。刚才的SMTP配置IDE邮箱即为身份验证账号,而通用配置中的gitlab_email_from,即为发信账号,要保证这两个账号一致。
综合配置如下:
#Sending application email via SMTP gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "xxuser@163.com" gitlab_rails['smtp_password'] = "xxpassword" gitlab_rails['smtp_domain'] = "163.com" gitlab_rails['smtp_authentication'] = :login gitlab_rails['smtp_enable_starttls_auto'] = true ##修改gitlab配置的发信人 gitlab_rails['gitlab_email_from'] = "xxuser@163.com" |
通过以上配置,系统即可发送邮箱了。可以通过测试命令测试配置成功。
// 进入控制台 $ gitlab-rails console // 发送测试邮件 $ Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now |
这是即可收到系统邮件,配置成功!!