Wie kann ich die Adresse des Absenders in Jenkins einstellen?

217

Ich sende intern E-Mails von Jenkins an ein anonymes SMTP-Relay. Dieses Relay sendet dann sicher E-Mails zum Online-Austausch über TLS an Port 587. Der Transport funktioniert einwandfrei. Das Problem besteht darin, dass Microsoft verlangt, dass die Absenderadresse mit dem Anmeldenamen der Authentifizierungsdaten übereinstimmt, der mit der E-Mail-Adresse des Kontos übereinstimmt. Angenommen, dies ist [email protected]. Wie kann ich Jenkins dazu bringen, immer E-Mails von [email protected] zu senden?

Übrigens, wenn ich sage, dass der Transport perfekt funktioniert, meine ich konkret, dass ich eine formatierte E-Mail-Datei in das Verzeichnis "Pickup" auf dem SMTP-Relay-Server ablegen kann und sie ordnungsgemäß an jeden Empfänger gesendet wird, vorausgesetzt, die Absenderadresse lautet foo @ mycompany .com.

CTOMarc
quelle
Weiß jemand, wie man das macht, ohne die Benutzeroberfläche zu benutzen? Vielleicht über die CLI oder ein grooviges Skript oder sogar einen Jenkins-Job?
JDF
Beantwortete meine eigene Frage zum Ändern der Administrator-E-Mail-Adresse ohne die unten stehende Benutzeroberfläche.
JDF

Antworten:

352

Jenkins verwendet die E-Mail-Adresse des Systemadministrators als Absenderadresse für die E-Mail-Benachrichtigung. Sie können dies unter Jenkins verwalten -> System konfigurieren konfigurieren . Dies befindet sich unter der Überschrift " Jenkins-Standort" auf dieser Seite! Es ist nicht sofort ersichtlich, dass diese Einstellung mit den E-Mail-Benachrichtigungseinstellungen verknüpft ist, da sie sich nicht unter dem E-Mail-Benachrichtigungsheader auf der Konfigurationsseite befindet.

Friso
quelle
1
Unter Verwendung von Ubuntu 12.04, local exim4 und Jenkins 1.565.1, die vom externen Repo installiert wurden, musste ich dies einstellen, damit die E-Mail-Zustellung funktioniert.
Max Hohenegger
96

Jenkins verwalten -> System konfigurieren -> Jenkins-Standort -> E-Mail-Adresse des Systemadministrators

Sie können die Seite nach "Jenkins Location" durchsuchen, um den Standardwert der noch nicht konfigurierten Adresse auf den gewünschten Wert zu ändern.

Anshu Prateek
quelle
Jenkins verwalten -> System konfigurieren -> Jenkins-Standort -> E-Mail-Adresse des Systemadministrators direkt am Punkt, tnx
Fröhlich
22

Es gibt zwei Stellen, an denen die "E-Mail-Benachrichtigungen" hinzugefügt werden können.

  1. Globale Ebene
  2. Lokale Ebene (Jenkins Job-Ebene)

Führen Sie die folgenden Schritte aus, um die E-Mail-Benachrichtigung auf globaler Ebene festzulegen: 1) Gehen Sie zu Jenkins verwalten. 2) Konfigurieren des Systems. 3) Jenkins-Standort. 4) E-Mail-Adresse des Systemadministrators

Geben Sie hier die Bildbeschreibung ein

Führen Sie die folgenden Schritte aus, um die E-Mail-Benachrichtigung auf lokaler Ebene (pro Jenkins-Auftragsebene) festzulegen: 1) Klicken Sie auf den Auftragsnamen (falls vorhanden). 2) Klicken Sie auf "Konfigurieren". 3) Suchen Sie dann nach "Post-". Build-Aktion "4) Geben Sie die E-Mail-Adresse unter" E-Mail-Benachrichtigung "an. 5) Speichern Sie die Änderungen.

Geben Sie hier die Bildbeschreibung ein

Sanjeet Pandey
quelle
1
Auf lokaler Ebene ist es nicht die Adresse des Absenders, sondern die des Empfängers. Ich denke, es ist nicht möglich, die E-Mail-Adresse des Absenders auf Jobebene zu konfigurieren, ohne benutzerdefinierte Skripte zum Senden von E-Mails zu schreiben.
Insider
11

Ich bin nicht sicher, ob es das ist, was Sie gemeint haben, aber Jenkins ermöglicht es Ihnen, eine vollständige Absender-E-Mail-Adresse für Benachrichtigungen anzugeben. Gehen Sie zu Jenkins verwalten , dann zur Systemkonfiguration und suchen Sie den Abschnitt E-Mail-Benachrichtigung .

Sie können Ihre E-Mail-Adresse in einer Form von angeben Jenkins <[email protected]>.

Łukasz Rżanek
quelle
8
Ab April 2015 ist es, Jenkins verwalten> System konfigurieren>
Systemadministrator
10

Wenn Sie dies ohne Verwendung der Jenkins-Benutzeroberfläche tun müssen (z. B. beim Automatisieren eines Jenkins-Setups), können Sie dies mit einem groovigen Skript tun.

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

Bitte beachten Sie: Ich habe dieses Skript nicht geschrieben (obwohl ich es getestet habe und es funktioniert). Alle Ehre gebührt Peter Halliday und seiner Website mit anderen hilfreichen, groovigen Skripten hier .

jdf
quelle