How can I set the Sender's address in Jenkins?

坚强是说给别人听的谎言 提交于 2019-12-20 08:55:45

问题


I'm sending mail from Jenkins to an anonymous SMTP relay internally. That relay then securely sends mail to exchange online via TLS on port 587. The transport works perfectly, the issue is that Microsoft requires the Sender address match the authentication credentials login name which is the same as the account email address. For example sake, say this is foo@mycompany.com. How can I make jenkins always send mail from foo@mycompany.com?

BTW when I say the transport works perfectly what I mean specifically is that I can drop a formatted e-mail file into the "Pickup" directory on the SMTP relay server and it is properly sent to any recipient provided the From address is foo@mycompany.com.


回答1:


Jenkins uses the System Admin e-mail address as the sender address for e-mail notification. You can configure this under Manage Jenkins -> Configure System. This is under the Jenkins Location header on that page! It is not immediately obvious that this setting is tied to the e-mail notification settings, since it is not under the E-mail notification header on the configuration page.




回答2:


Manage Jenkins -> Configure System -> Jenkins Location -> System Admin e-mail address

You can search the page for "Jenkins Location" to change the default value of address not configured yet to whatever you want.




回答3:


There are two places to add the "E-Mail Notificaitons"

  1. Global level
  2. Local level (Jenkins job level)

To set the E-Mail Notification at Global Level, follow below steps - 1) Go to Manage Jenkins 2) Configure System 3) Jenkins Location 4) System Admin e-mail address

To set the E-Mail Notification at local level (per Jenkins job level), follow below steps - 1) Click on the Job name (if existing one) 2) click on the "Configure" 3) Then look for the "Post-build Action" 4) Specify the email address under "E-mail Notification". 5) Save the changes.




回答4:


I'm not sure if it is what you meant, but Jenkins enables you to provide a full Sender E-mail Address for notifications. Go to Manage jenkins, then System configuration and find section called E-mail Notification.

You can provide you email address in a form of Jenkins <foo@mycompany.com>.




回答5:


If you need to do this without using the jenkins UI (for instance in automating a jenkins setup) - you can do so with a groovy script.

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

Do note: I did not write this script (although I have tested it and it works), all credit to Peter Halliday and his website with other helpful groovy scripts here.



来源:https://stackoverflow.com/questions/9693526/how-can-i-set-the-senders-address-in-jenkins

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!