Comment puis-je définir l'adresse de l'expéditeur dans Jenkins?

217

J'envoie du courrier de Jenkins à un relais SMTP anonyme en interne. Ce relais envoie ensuite en toute sécurité du courrier à échanger en ligne via TLS sur le port 587. Le transport fonctionne parfaitement, le problème est que Microsoft requiert que l'adresse de l'expéditeur corresponde au nom de connexion des informations d'authentification qui est le même que l'adresse e-mail du compte. Par exemple, disons que c'est [email protected]. Comment puis-je faire en sorte que jenkins envoie toujours du courrier à partir de [email protected]?

BTW quand je dis que le transport fonctionne parfaitement, ce que je veux dire en particulier, c'est que je peux déposer un fichier e-mail formaté dans le répertoire "Pickup" sur le serveur de relais SMTP et qu'il est correctement envoyé à tout destinataire à condition que l'adresse De soit foo @ mycompany .com.

CTOMarc
la source
Est-ce que quelqu'un sait comment faire cela sans utiliser l'interface utilisateur? Peut-être via la CLI ou un script groovy ou même un travail jenkins?
jdf
Répondu à ma propre question sur la modification de l'adresse e-mail de l'administrateur sans l'interface utilisateur ci-dessous.
jdf

Réponses:

352

Jenkins utilise l' adresse e-mail de l'administrateur système comme adresse d'expéditeur pour la notification par e-mail. Vous pouvez le configurer sous Gérer Jenkins -> Configurer le système . C'est sous l'en- tête Jenkins Location sur cette page! Il n'est pas immédiatement évident que ce paramètre est lié aux paramètres de notification par e-mail, car il n'est pas sous l'en - tête de notification par e-mail sur la page de configuration.

Friso
la source
1
En utilisant Ubuntu 12.04, exim4 local et Jenkins 1.565.1, installés à partir du référentiel externe, j'ai dû régler cela afin de faire fonctionner la livraison du courrier.
Max Hohenegger
96

Gérer Jenkins -> Configurer le système -> Emplacement Jenkins -> Adresse e-mail de l'administrateur système

Vous pouvez rechercher sur la page "Jenkins Location" pour changer la valeur par défaut de l'adresse non encore configurée en celle que vous voulez.

Anshu Prateek
la source
Gérer Jenkins -> Configurer le système -> Emplacement Jenkins -> Adresse e-mail de l'administrateur système juste sur le point, tnx
Frohlich
22

Il y a deux endroits pour ajouter les "notifications par e-mail"

  1. Niveau global
  2. Niveau local (niveau d'emploi Jenkins)

Pour définir la notification par e-mail au niveau global , suivez les étapes ci-dessous - 1) Allez dans Gérer Jenkins 2) Configurer le système 3) Emplacement Jenkins 4) Adresse e-mail de l'administrateur système

entrez la description de l'image ici

Pour définir la notification par e-mail au niveau local (par niveau de travail Jenkins), suivez les étapes ci-dessous - 1) Cliquez sur le nom du travail (s'il existe) 2) cliquez sur "Configurer" 3) Recherchez ensuite le "Post- build Action "4) Spécifiez l'adresse e-mail sous" Notification par e-mail ". 5) Enregistrez les modifications.

entrez la description de l'image ici

Sanjeet Pandey
la source
1
Au niveau local, ce n'est pas l'adresse de l'expéditeur mais celle du destinataire. Je suppose qu'il n'est pas possible de configurer l'adresse e-mail de l'expéditeur au niveau du travail sans écrire de scripts personnalisés pour envoyer des e-mails.
initié
11

Je ne sais pas si c'est ce que vous vouliez dire, mais Jenkins vous permet de fournir une adresse e-mail d'expéditeur complète pour les notifications. Accédez à Gérer jenkins , puis à Configuration système et recherchez la section intitulée Notification par e-mail .

Vous pouvez fournir votre adresse e-mail sous forme de Jenkins <[email protected]>.

Łukasz Rżanek
la source
8
En date d'avril 2015, il s'agit de Gérer Jenkins> Configurer le système> Adresse e-mail de l'administrateur système
Shirish Hirekodi
10

Si vous devez le faire sans utiliser l'interface utilisateur jenkins (par exemple pour automatiser une configuration jenkins) - vous pouvez le faire avec un script 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()

Remarque: je n'ai pas écrit ce script (bien que je l'ai testé et qu'il fonctionne), tout le crédit à Peter Halliday et son site Web avec d'autres scripts groovy utiles ici .

jdf
la source