gitlab配置邮件通知功能操作记录
之前已经介绍了gitlab的部署http://www.cnblogs.com/kevingrace/p/5651402.html 但是没有配置邮箱通知功能,今天这里介绍下gitlab安装后的邮箱配置操作:
注意几点: 1)登陆gitlab后,只能在admin管理员账号下创建新账号,一般来说,创建好新账号后,会自动给新账号预留的邮箱发送通知邮件,点击邮件中的链接进行激活,首次登陆gitlab会进行密码设置。 2)如果不想在通知邮件里修改密码或没收到邮件,也可以绕过这一步。即在新账号创建后,在管理员状态下“编辑”新账号,设置一个密码,这个是初始密码。然后登陆新账号,这时候登陆后会强制进行初始密码的修改。
邮箱通知功能开通后,除了上面可以发送新建账号的激活邮件,还可以让用户通过邮箱注册gitlab,然后在管理员账号下对新注册账号进行project和group等权限授予。 这个有点不太安全,后续会介绍gitlab+openldap对接的操作记录,跟openldap结合后,gitlab的登陆就只能是LDAP方式了,邮箱注册功能就会失效!
废话不多说了,下面是gitlab开通邮箱通知功能的操作记录:
这里测试使用的是阿里云的企业邮箱 假设通知邮件的邮箱名为ops@wangshibo.cn,密码为zh@123bj 主要修改gitlan的三个文件,邮箱相关设置如下: 1)编辑/opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml文件,开通email邮件功能 [root@test-huanqiu ~]# vim /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml ......... email_enabled: true # Email address used in the "From" field in mails sent by GitLab email_from: ops@wangshibo.cn #email_display_name: GitLab #email_reply_to: noreply@example.com ........
2)编辑/opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb.sample文件 [root@test-huanqiu ~]# vim /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/initializers/smtp_settings.rb.sample ........ ActionMailer::Base.smtp_settings = { address: "smtp.wangshibo.cn", port: 25, user_name: "ops@wangshibo.cn", password: "zh@123bj", domain: "wangshibo.cn", authentication: :login, enable_starttls_auto: true, openssl_verify_mode: 'none' # See ActionMailer documentation for other possible options } .......
3)编辑/opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/environments/production.rb文件,添加下面标红的几行内容,设置smtp模式 [root@test-huanqiu ~]# vim /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/environments/production.rb ....... config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.wangshibo.cn", :port => "25", :domain => "wangshibo.cn", :authentication => :plain, :user_name => "ops@wangshibo.cn", :password => "zh@123bj", :enable_starttls_auto => true }
config.eager_load = true
config.allow_concurrency = false .......
最后,重启gitlab相关服务 [root@localhost gitlab-8.8.4-0]# pwd /opt/gitlab-8.8.4-0 [root@localhost gitlab-8.8.4-0]# ./ctlscript.sh restart
------------------------------------------------------------------------ 下面是腾讯企业邮箱的一个配置: 假设腾讯企业邮箱是:noreply@wangshibo.com,密码是H8*Cy9wXn8$SuhbT 1)gitlab.yml文件配置 ...... email_enabled: true # Email address used in the "From" field in mails sent by GitLab email_from: noreply@wangshibo.com #email_display_name: GitLab #email_reply_to: noreply@wangshibo.com ...... 2)smtp_settings.rb 文件配置 ..... ActionMailer::Base.smtp_settings = { address: "smtp.exmail.qq.com", port: 25, user_name: "noreply@wangshibo.com", password: "H8*Cy9wXn8$SuhbT", domain: "smtp.qq.com", authentication: :plain, enable_starttls_auto: true, openssl_verify_mode: 'none' # See ActionMailer documentation for other possible options } 3)production.rb文件配置 ...... config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.exmail.qq.com", :port => "25", :domain => "smtp.qq.com", :authentication => :plain, :user_name => "noreply@wangshibo.com", :password => "H8*Cy9wXn8$SuhbT", :enable_starttls_auto => true }
config.eager_load = true
config.allow_concurrency = false
- ASM 翻译系列第二十九弹:ASM INTERNAL Free Space Table
- MySql常用30种SQL查询语句优化方法
- RxJS速成
- 会HTML/CSS就可以轻松创建网站
- 区块链银行应用探索(Hyperledger fabric)
- mysql之基本语法
- mysql之索引的工作机制
- Mysql之锁与事务
- 独家 | 教你实现数据集多维可视化(附代码)
- NoSQL | Redis、Memcache、MongoDB特点、区别以及应用场景
- cf--------(div1)1A. Theatre Square
- 离线网页制作器(beta1.0)
- uva---(11549)CALCULATOR CONUNDRUM
- CF---(452)A. Eevee
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Redis数据结构 String类型】String类型生产中的应用 缓存、计数器、限速器的实现
- Redis数据结构 List 类型】List 类型生产中的应用 消息队列、排行榜、朋友圈、监控程序的实现
- Crawlab准备之python+scrapy环境搭建
- 一致性协议之 ZAB
- Elasticsearch Analyzer原理分析并实现中文分词
- php laravel5.5使用rabbitmq消息队列
- 还不知道怎么运行Python代码,快来撸代码
- Linux常用命令速查表
- 机器学习中必须要会用的模块
- 【MathorCup】2020年 A题 无车承运人平台线路定价问题,特征间的相关性分析
- 决策树预测成本价 2020年 MathorCup数学建模 A题 无车承运人平台线路定价问题
- 2020年 MathorCup数学建模 A题 无车承运人平台线路定价问题,定价评价
- RabbitMQ 消费端限流、TTL、死信队列
- 全栈必备 Redis基础
- JSP的异常处理