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

我从詹金斯那里发邮件到一个匿名的内部SMTP中继。然后,该中继通过端口587上的TLS安全地将邮件发送到在线交换机。传输工作完美,问题是微软要求发件人地址匹配认证凭据登录名,这是相同的帐户电子邮件地址。例如,假设这是foo@mycompany.com。我怎么能让詹金斯总是从foo@mycompany.com发送邮件?

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

110298 次浏览

我不确定这是否是你的意思,但詹金斯让你提供一个完整的发件人电子邮件地址通知。转到管理詹金斯,然后是系统配置,找到名为电子邮件通知的部分。

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

Jenkins使用系统管理员电子邮件地址作为电子邮件通知的发送者地址。你可以在Manage Jenkins ->配置系统下配置。这是在该页的詹金斯的位置标题下!这个设置是否绑定到电子邮件通知设置并不明显,因为它不在配置页的电子邮件通知标题下。

Manage Jenkins -> Configure System -> Jenkins Location ->系统管理员的电子邮件地址

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

如果你需要在不使用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脚本在这里

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

  1. 全球层面上
  2. 本地级别(Jenkins工作级别)
要将电子邮件通知设置为全球层面上,请遵循以下步骤- 1)去找詹金斯经理 2)系统配置 3) Jenkins位置 4)系统管理员的电子邮件地址

enter image description here

要将电子邮件通知设置为当地的水平(每个Jenkins作业级别),请遵循以下步骤- 1)点击作业名称(如果有的话) 2)点击【配置】 3)然后寻找“构建后行动” 4)在“电邮通知”下填写电邮地址。 5)保存更改。< / p >

enter image description here

import javax.mail.Message.RecipientType
import javax.mail.Address
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeMessage


msg.setFrom(new InternetAddress("john...@server.com"))