我正在内部将Jenkins的邮件发送到匿名SMTP中继。然后,该中继通过端口587上的TLS安全地将邮件发送到在线交换。传输工作正常,问题是Microsoft要求发件人地址与身份验证凭据登录名匹配,该名称与帐户电子邮件地址相同。例如,比如说这是foo@mycompany.com。如何让jenkins始终从foo@mycompany.com发送邮件?
顺便说一下,当我说传输工作完全正常时我的意思是我可以将格式化的电子邮件文件放入SMTP中继服务器上的“分拣”目录中,如果发件人地址是,则将其正确发送给任何收件人foo@mycompany.com。
答案 0 :(得分:341)
Jenkins使用系统管理员电子邮件地址作为电子邮件通知的发件人地址。您可以在 Manage Jenkins - >下配置它。配置系统。这是在该页面上的 Jenkins Location 标题下!很明显,此设置与电子邮件通知设置相关联,因为它不在配置页面上的电子邮件通知标题下。
答案 1 :(得分:92)
管理Jenkins - >配置系统 - > Jenkins位置 - >系统管理员电子邮件地址
您可以在页面中搜索“Jenkins Location”,将未配置的地址的默认值更改为您想要的任何内容。
答案 2 :(得分:17)
有两个地方可以添加“电子邮件通知”
答案 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"))