如何在 Jenkins 中设置发件人地址?

问题描述 投票:0回答:7

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

顺便说一句,当我说传输工作完美时,我的具体意思是,我可以将格式化的电子邮件文件放入 SMTP 中继服务器上的“Pickup”目录中,并且只要发件人地址是 foo@,它就会正确发送到任何收件人mycompany.com。

email smtp jenkins sender
7个回答
390
投票

Jenkins 使用系统管理员电子邮件地址作为电子邮件通知的发件人地址。您可以在管理 Jenkins -> 配置系统下进行配置。这是该页面上的 Jenkins Location 标题下!此设置与电子邮件通知设置的关联并不明显,因为它不在配置页面上的电子邮件通知标题下。


113
投票

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

您可以在页面中搜索“Jenkins Location”,将尚未配置的默认地址值更改为您想要的值。


37
投票

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

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

要在全局级别设置电子邮件通知,请按照以下步骤操作 - 1)进入管理詹金斯 2) 配置系统 3)詹金斯位置 4) 系统管理员电子邮件地址

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


12
投票

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

您可以以

Jenkins <[email protected]>
的形式提供您的电子邮件地址。


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 和他的网站以及其他有用的常规脚本这里


0
投票
import javax.mail.Message.RecipientType
import javax.mail.Address
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeMessage

msg.setFrom(new InternetAddress("[email protected]"))

0
投票

配置文件位于Jenkins主目录下的jenkins.model.JenkinsLocationConfiguration.xml中。

如果您使用脚本来设置 Jenkins。

© www.soinside.com 2019 - 2024. All rights reserved.