Mailversand

Die globale SMTP-Serveranbindung wird über die grafische Oberfläche konfiguriert. Diese Anbindung ist notwendig, wenn Relution aktiv Mails versenden soll. Dies können beispielsweise Mails für einen Passwort-Reset, eine Einschreibung oder Benachrichtigung sein. Die Anbindung eines SMTP Servers ist optional.


Konfiguration

Für System-Administratoren steht in der Global-Organisation unter Einstellungen → E-Mail Konfiguration die Konfiguration des SMTP-Servers zur Verfügung. Sie umfasst folgende Felder:

  • Host und Port
  • Sicherheit der Verbindung: Keine, STARTTLS, STARTTLS (REQUIRETLS) oder SSL/TLS. Bei STARTTLS wechselt Relution auf eine verschlüsselte Verbindung, sofern der Server dies unterstützt; bei STARTTLS (REQUIRETLS) schlägt der Versand fehl, wenn der Server kein STARTTLS anbietet.
  • Extended Hello (EHLO) verwenden: Voraussetzung für STARTTLS und STARTTLS (REQUIRETLS).
  • Lokaler Hostname für HELO/EHLO: Bleibt das Feld leer, wird der externe Hostname des Servers verwendet; ist die externe URL eine IP-Adresse, wird sie in der Form [IP-Adresse] gemeldet.
  • Benutzername und Passwort: Bleibt das Passwortfeld beim Bearbeiten leer, wird das bestehende Passwort beim Speichern und beim Test nur beibehalten, solange Host, Port und Sicherheit der Verbindung unverändert sind (siehe unten).
  • Absenderadresse: Pflichtfeld; diese Adresse wird als Absender ausgehender E-Mails verwendet.

Im Bereich E-Mail-Konfiguration testen wird über Senden mit den aktuell eingegebenen, noch nicht gespeicherten Werten eine Test-E-Mail an die E-Mail-Adresse des angemeldeten Benutzers verschickt. Ist für das angemeldete Konto keine E-Mail-Adresse hinterlegt, schlägt der Test fehl. Der Test steht wie die Konfiguration nur in der Global-Organisation zur Verfügung.

Bei leerem Passwortfeld verwendet Relution das gespeicherte Passwort nur, wenn Host, Port und Sicherheit der Verbindung gegenüber der gespeicherten Konfiguration unverändert sind. Ein leeres Feld Port gilt dabei als Port 25. Änderungen an Benutzername, Absenderadresse, Extended Hello (EHLO) verwenden und Lokaler Hostname für HELO/EHLO spielen keine Rolle. Für den Test gilt diese Regel ab Relution 26.5.5, ab Relution 27.0.1 auch für das Speichern.

Wurde einer der drei Werte geändert, lehnt Relution Speichern und Test mit leerem Passwortfeld ab. Passwort wird zum Pflichtfeld, Platzhalter und Hinweis „Leer lassen, um bestehendes Passwort beizubehalten“ entfallen, und unter dem Feld erscheint die Meldung „Der Verbindungsendpunkt wurde geändert. Bitte geben Sie das Passwort bzw. Geheimnis erneut ein.“ Die Konfiguration wird in diesem Fall nicht gespeichert. Nach erneuter Eingabe des Passworts lässt sich die Konfiguration speichern bzw. der Test über Senden wiederholen. Ist noch kein Passwort gespeichert, entfällt diese Prüfung.

Solange kein SMTP-Server konfiguriert ist, zeigt Relution Systemadministratoren in der Global-Organisation die Benachrichtigung SMTP ist nicht konfiguriert an. Bei einer Konfiguration über die application.yml verschwindet sie erst, wenn neben dem Mailserver auch die Absenderadresse über mail.smtp.from gesetzt ist (siehe Zusätzliche Optionen für die Mail-Session →).


Vorrang zwischen Oberfläche und application.yml

Die in der Oberfläche gespeicherte Konfiguration hat Vorrang. Die Werte aus der application.yml bzw. aus den Umgebungsvariablen werden nur verwendet, solange in der Oberfläche keine Konfiguration gespeichert ist. Eine bestehende Konfiguration wird in der Kategorie Konfiguration des E-Mail-Servers im Bereich Konfiguration löschen über Löschen entfernt; danach greift Relution auf die application.yml zurück.

Änderungen an der application.yml werden erst nach einem Neustart des Relution-Servers wirksam.


application.yml

relution:
  mail:
    username:
    password:
    host: localhost
    port: 25
  smtp:
    starttls: false
    ssl: false
    ehlo: true

Die oben gezeigten Einstellungen sind die Standardwerte, wenn sie nicht konfiguriert sind. SMTP-Konnektivität wird als Teil der Server-Zustandsprüfungen getestet, die im Systemportal angezeigt werden.

Der frühere Schlüssel ttls anstelle von starttls wird weiterhin ausgewertet. Sind ssl und starttls beide true, verwendet Relution SSL/TLS.

Alternativ lassen sich die Werte über Umgebungsvariablen setzen, z. B. in einer Docker-Installation:

UmgebungsvariableSchlüssel in der application.yml
SMTP_HOSTrelution.mail.host
SMTP_PORTrelution.mail.port
SMTP_USERNAMErelution.mail.username
SMTP_PASSWORDrelution.mail.password
SMTP_TTLSrelution.smtp.starttls
SMTP_SSLrelution.smtp.ssl
SMTP_EHLOrelution.smtp.ehlo

Ein Wert, der in der application.yml explizit gesetzt ist, hat Vorrang vor der Umgebungsvariable.


Zusätzliche Optionen für die Mail-Session

Über relution.mail.properties lassen sich weitere Optionen direkt an die Mail-Bibliothek (Jakarta Mail) übergeben. Die Einträge werden unverändert übernommen und überschreiben die von Relution gesetzten Werte. Sie wirken nur, solange die Konfiguration aus der application.yml stammt, also keine Konfiguration in der Oberfläche gespeichert ist.

relution:
  mail:
    host: smtp.example.com
    port: 587
    username: "relay@example.com"
    password: "xxx"
    properties:
      "[mail.smtp.from]": "mdm@example.com"
      "[mail.smtp.starttls.required]": "true"
      "[mail.smtp.ssl.trust]": "smtp.example.com"
  smtp:
    starttls: true
    ssl: false
    ehlo: true

Die Schlüssel enthalten Punkte und stehen deshalb in eckigen Klammern und Anführungszeichen. Häufig benötigte Optionen:

OptionWirkung
mail.smtp.fromAbsenderadresse. Ohne Angabe bildet Relution eine Adresse aus der Domain der externen Server-URL (no-reply+relution@<Domain>, z. B. no-reply+relution@example.com bei mdm.example.com).
mail.smtp.localhostHostname, der im EHLO-Befehl gemeldet wird. Ohne Angabe wird der Hostname der externen Server-URL verwendet.
mail.smtp.starttls.requiredBricht den Versand ab, wenn der Server kein STARTTLS anbietet.
mail.smtp.ssl.trustHosts, deren Zertifikat ohne Prüfung vertraut wird. Hilft bei Mailservern mit unvollständiger Zertifikatskette.

mail.smtp.ssl.trust sollte den konkreten Hostnamen des Mailservers enthalten. Der Wert * vertraut jedem Zertifikat jedes Servers. Die bessere Lösung bleibt, das Zertifikat der ausstellenden Zertifizierungsstelle in den Truststore aufzunehmen.

Steht das Loglevel für io.relution.setting.system.email.SystemEmailConfigurationService auf DEBUG, gibt Relution bei jedem Versand die vollständige SMTP-Kommunikation auf der Standardausgabe aus (bei Docker in docker logs), nicht zwingend in der Relution-Logdatei. Für die Test-E-Mail unter E-Mail-Konfiguration testen wirkt die Einstellung sofort. Für den regulären Versand wirkt sie erst, nachdem die E-Mail-Konfiguration erneut gespeichert oder der Server neu gestartet wurde. Das gilt auch für das Zurücksetzen auf INFO. Loglevel einstellen →


Amazon Simple Email Service (SES) SMTP

Die empfohlenen Einstellungen für die Verbindung mit Amazon SES sind wie folgt:

relution:
  mail:
    username: ABCDEFGHIJKLMNOPQ123
    password: "abcdefghijklmnopqrstuvwxyz/BASE64+1234567890"
    host: email-smtp.eu-central-1.amazonaws.com
    port: 587
  smtp:
    starttls: true
    ssl: false
    ehlo: true

Die SMTP-Parameter Benutzername und Passwort müssen ein AWS-Zugangsschlüssel und ein geheimer Schlüssel eines IAM-Benutzers mit AmazonSesSendingAccess-Berechtigungen sein, der ses:SendRawEmail-Rechte gewährt. Sicherstellen, dass die korrekte Region als Teil von host mit angegeben ist. Diese Einstellungen können auf der Seite SMTP-Einstellungen des SES-Services in der AWS-Konsole nachgeschlagen werden.


Microsoft Office365 SMTP

Die empfohlenen Einstellungen um Mails über Office365 senden zu können sind diese:

Die Absenderadresse unter Einstellungen → E-Mail Konfiguration muss mit dem Benutzernamen des Kontos übereinstimmen. Erfolgt die Konfiguration über die application.yml, wird die Absenderadresse über mail.smtp.from gesetzt (siehe Zusätzliche Optionen für die Mail-Session →). Für das Konto muss SMTP AUTH aktiviert sein.

relution:
  mail:
    username: "email@somewhere.de"
    password: "xxx"
    host: smtp.office365.com
    port: 587
  smtp:
    starttls: true
    ssl: false
    ehlo: true
Top