如何在詹金斯设置发件人的地址?


217

我正在从Jenkins内部发送邮件到匿名SMTP中继。然后,该中继将安全地发送邮件,以通过587端口上的TLS通过TLS在线进行交换。问题是,Microsoft要求发件人地址与身份验证凭据登录名匹配,该身份验证登录名与帐户电子邮件地址相同。例如,假设这是foo@mycompany.com。如何使jenkins始终从foo@mycompany.com发送邮件?

顺便说一句,当我说传输完全正常时,我的意思是将格式化的电子邮件文件拖放到SMTP中继服务器上的“ Pickup”目录中,并将其正确发送给任何收件人,前提是发件人地址为foo @ mycompany。 .com。


有人知道不使用UI怎么做吗?也许通过CLI或常规脚本甚至jenkins作业?
jdf

回答了我自己的有关在不使用以下用户界面的情况下更改管理员电子邮件地址的问题。
jdf

Answers:


352

Jenkins使用系统管理员电子邮件地址作为电子邮件通知的发件人地址。您可以在Manage Jenkins-> Configure System下进行配置。这是在该页面的“ 詹金斯位置”标题下!由于此设置不在配置页面上的“ 电子邮件通知”标题下,因此,该设置是否立即绑定到电子邮件通知设置并不很明显。


1
使用从外部存储库安装的Ubuntu 12.04,本地exim4和Jenkins 1.565.1,我必须设置此项才能使邮件传递正常工作。
Max Hohenegger 2014年

96

管理Jenkins->配置系统-> Jenkins位置->系统管理员电子邮件地址

您可以在页面上搜索“ Jenkins位置”,以将尚未配置的地址的默认值更改为所需的任何值。


管理Jenkins->配置系统-> Jenkins位置-> System Admin电子邮件地址就在tnx点上
Frohlich

22

有两个地方可以添加“电子邮件通知”

  1. 全球水平
  2. 地方一级(詹金斯工作一级)

要在全局级别设置电子邮件通知,请执行以下步骤-1)转到管理Jenkins 2)配置系统3)Jenkins位置4)系统管理员电子邮件地址

在此处输入图片说明

要在本地级别(每个Jenkins职位级别)设置电子邮件通知,请执行以下步骤-1)单击职位名称(如果存在)2)单击“配置” 3)然后寻找“职位build操作” 4)在“电子邮件通知”下指定电子邮件地址。5)保存更改。

在此处输入图片说明


1
在本地级别上,它不是发件人的地址,而是收件人的地址。我想如果不编写自定义脚本来发送电子邮件,就不可能在工作级别上配置发件人的电子邮件地址。
内部人员

11

我不确定这是否意味着您的意思,但是Jenkins使您能够提供完整的发件人电子邮件地址来进行通知。转到管理jenkins,然后进入系统配置,然后找到名为电子邮件通知的部分

您可以以的形式提供您的电子邮件地址Jenkins <foo@mycompany.com>


8
截至2015年4月,管理Jenkins>配置系统>系统管理员电子邮件地址
Shirish Hirekodi 2015年

10

如果您需要在不使用jenkins UI的情况下执行此操作(例如,在自动化jenkins设置中),则可以使用groovy脚本来执行此操作。

import jenkins.model.*

def jenkinsLocationConfiguration = JenkinsLocationConfiguration.get()

jenkinsLocationConfiguration.setAdminAddress("[your admin name] <[your admin email address]>")
// example format -> .setAdminAddress("Jane Doe <foo@company_email.com>")    

jenkinsLocationConfiguration.save()

请注意:我没有编写此脚本(尽管我已经对其进行了测试并且可以工作),所有这些都归功于Peter Halliday及其网站以及此处的其他有用的Groovy脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.