docker 部署运行的 gitlab ce 使用 smtp方式发邮件email

关于如何使用docker 安装并运行 gitlab ce ,请参考我的另一篇文章https://blog.csdn.net/ujm097/article/details/80797857

我们在运行gitlab容器的时候,是把数据data,日志log和配置config挂在到容器外部(这点很重要)

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第1张图片

默认的邮件发送方式是sendmail,参考https://blog.csdn.net/weiguang1017/article/details/77533883

这里我们需要改为smtp方式

首先修改配置文件,参考https://docs.gitlab.com/omnibus/settings/smtp.html#qq-exmail

cd /srv/gitlab/config

vi gitlab.rb

在文件的最后加入如下代码,本例中使用的是腾讯企业邮箱

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"

gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_user_name'] = "[email protected]"

gitlab_rails['smtp_password'] = "password"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '[email protected]'

gitlab_rails['smtp_domain'] = "exmail.qq.com"

其中smtp_user_name和gitlab_email_from需要修改为真实的一个腾讯企业邮箱账号

smtp_password改为该账号的密码,其余完全不变

注意,这些代码前面不要加"#",这个是注释

修改之后保存,目前gitlab容器正在运行

进入bash,

docker exec -it gitlab bash    

gitlab为容器名称

进入后执行

gitlab-ctl reconfigure

完成重新配置后

还在bash中执行

gitlab-rails console

如下图,进入console命令

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第2张图片

验证配置是否生效,此部分参考http://www.bkjia.com/Javabc/1217016.html

1.显示当前使用的邮件发送协议

ActionMailer::Base.delivery_method

没有问题,是smtp方式

2.查看当前的邮件发送配置

ActionMailer::Base.smtp_settings

配置也已经生效

3.测试console中直接发送邮件

Notify.test_email('[email protected]','测试标题','测试内容').deliver_now

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第3张图片

进入企业邮箱账号查看结果

发送成功!

 

接下来,需要配置gitlab的邮件通知

默认忘记密码发送重置邮件是不用配置的

首先登陆管理员的账号找到settings中的email,选中enable HTML emails

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第4张图片

 

然后个人账户,找到设置settings的email,确认设置了接受消息的默认邮箱。可以使用注册的邮箱,也可以新增一个

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第5张图片

同时,针对不同的项目设置不同的通知级别,默认为全局(均可收到通知)

docker 部署运行的 gitlab ce 使用 smtp方式发邮件email_第6张图片

然后我们提交一个issue或者回复,都会触发邮件发送

你可能感兴趣的:(Gitlab)