官方gitlab邮箱配置指导:https://docs.gitlab.com.cn/omnibus/settings/smtp.html
以下是基于163邮箱的配置:
1.编辑/etc/gitlab/gitlab.rb
#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’] = "[email protected]"
gitlab_rails[‘smtp_password’] = “131313”
gitlab_rails[‘smtp_domain’] = “163.com”
gitlab_rails[‘smtp_authentication’] = :login
gitlab_rails[‘smtp_enable_starttls_auto’] = true
##修改gitlab配置的发信人
gitlab_rails[‘gitlab_email_from’] = "[email protected]"
user[“git_user_email”] = "[email protected]"
2.配置完成后可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:
irb(main):003:0> Notify.test_email('[email protected]', 'Message Subject', 'Message Body').deliver_now
# 示例
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
如上表述邮件发送成功,然后登陆邮箱查看是否收到邮件
问题:gitlab发邮件报550 User has no permission
当传入发送邮箱正确的用户名和密码时,总是收到到:550 User has no permission这样的错误,
其实我们用gitlab发送邮件时相当于自定义客户端根据用户名和密码进行登录,然后使用SMTP服务发送邮件。但新注册的163邮件默认是不开启客户端授权验证的(对自定的邮箱大师客户端默认开启),
因此登录总是会被拒绝,验证没有权限。解决办法是进入163邮箱,进入邮箱中心——客户端授权密码,选择开启即可,如下截图
登陆163邮箱开启客户端授权密码
设置完毕后,在/etc/gitlab/gitlab.rb代替原始的邮箱密码,这样就可以正确的发送邮件了。