Jenkins 邮箱设置

jenkins 内部提供了两个邮箱配置,一个 E-mail Notification,另外一个是 Extend E-mail Notification, 前者是 jenkins 自带的插件,后者是需要额外安装的

E-mail Notification 只有很少的触发,或者在出异常状况的时候触发,jenkins 系统配置中需要配置 SMTP server 和配置相应的账户来发送邮件,值得注意的是,系统 Admin e-mail address 要和 发送的邮件不一致,否则就会抛出 501 异常

SendFailedException message: 501 mail from address must be same as authorization user

Extend E-mail Notification 功能为 E-mail Notification 增强版本,设置与前者一样,但是没有测试发送邮件功能,不过提供了很多触发时机,自定义性更强一点。

在具体 JOB 中,E-mail Notification 剧本不需要设置,只需要指定收件人就行了。Extend E-mail Notification 需要指定收件各种属性,其中最终要的一条 Project From 需要与系统Admin e-mail address 一致,否则也会抛出 501 异常。

Gitlab Server Mail Setting

一、配置环境

Ubuntu + Gitlab + 腾讯企业邮箱

二、配置

配置文件:/etc/gitlab/gitlab.rb

### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'XXXXXX@XXXX.com'
gitlab_rails['gitlab_email_display_name'] = 'XXXXXX'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@XXXXX.com'
gitlab_rails['gitlab_email_subject_suffix'] = ''

#### IMAP Settings
gitlab_rails['incoming_email_host'] = "imap.exmail.qq.com"

### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "XXXXXX@XXXXXX.com"
gitlab_rails['smtp_password'] = "XXXXXX"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

三、测试

gitlab-rails console
Notify.test_email('xxxxx@qq.com', '邮件标题', '邮件正文').deliver_now

四、配置生效

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

gitlab 配置文档