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

时间:2012-03-13 23:01:42

标签: email smtp jenkins sender

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

顺便说一下,当我说传输工作完全正常时我的意思是我可以将格式化的电子邮件文件放入SMTP中继服务器上的“分拣”目录中,如果发件人地址是,则将其正确发送给任何收件人foo@mycompany.com。

6 个答案:

答案 0 :(得分:341)

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

答案 1 :(得分:92)

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

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

答案 2 :(得分:17)

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

  1. 全球水平
  2. 本地级别(Jenkins工作级别)
  3. 要在全局级别设置电子邮件通知,请按照以下步骤操作 - 1)转到管理Jenkins 2)配置系统 3)詹金斯位置 4)系统管理员电子邮件地址

    enter image description here

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

    enter image description here

答案 3 :(得分:10)

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

您可以Jenkins <foo@mycompany.com>

的形式向您提供电子邮件地址

答案 4 :(得分:8)

如果您需要在不使用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脚本here

答案 5 :(得分:0)

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"))