首页 文章

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

提问于
浏览
197

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

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

5 回答

  • 330

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

  • 88

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

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

  • 12

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

    • 全球水平

    • 本地级别(詹金斯工作级别)

    要在 Global Level 设置电子邮件通知,请按照以下步骤操作 - 1)转到管理Jenkins 2)配置系统3)Jenkins位置4)系统管理员电子邮件地址

    enter image description here

    要在 local level (每个Jenkins工作级别)设置电子邮件通知,请按照以下步骤操作 - 1)单击作业名称(如果存在)2)单击"Configure" 3)然后查找"Post-build Action" 4)指定电子邮件"E-mail Notification"下的地址 . 5)保存更改 .

    enter image description here

  • 7

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

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

  • 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脚本here .

相关问题