//Cloudogu EcoSystem Docs

Lokaler Mailversand

Zur Überprüfung, ob der Mailversand des Postfix-Dogus funktioniert, kann MailHog verwendet werden. MailHog ist ein Tool zum Testen von E-Mails in einer lokalen Entwicklungsumgebnung. MailHog richtet einen lokalen Pseudo-SMTP-Server ein.

Einrichtung von MailHog

Kurz zusammengefasst wird MailHog lokal auf dem Host-Rechner als Docker-Container ausgeführt und im lokalen CES als Relay-Host des Postfix-Dogus eingetragen.

Konkret müssen folgende Schritte ausgeführt werden:

  • MailHog auf dem Host-Rechner als Docker-Container ausführen:

    docker run -d -p 1025:1025 -p 8025:8025 mailhog/mailhog 
  • MailHog im lokalen CES als Relay-Host des Postfix-Dogus setzen:

    etcdctl set /config/postfix/relayhost 192.168.56.1:1025
  • Postfix-Dogu über die cesapp entfernen und neu erzeugen

    cesapp recreate postfix
  • Postfix-Dogu starten

    cesapp start postfix 
  • In die bash des Dogus wechseln

    docker exec -it postfix bash 
  • Mail versenden

    sendmail -t testmail@cloudogu.de
    Text 1234
    
    <strg>+<d>
  • In Web-Oberfläche vom MailHog - localhost:8025 - Mail-Empfang prüfen

Einrichtung eines Proxy vor MailHog zum testen von Authentifizerungsworkflows

MailHog unterstützt keine Authentifizerung, aus diesem Grund kann mithilfe des Tools E-MailRelay ein Proxy vor dem MailHog aufgebaut werden.

Dazu muss E-MailRelay heruntergeladen, entpackt und installiert sudo ./configure && sudo make && sudo make install werden.

Für die Authentifizierung kann eine Password-Datei angelegt werden, die z.B. so aussehen kann:

secret.auth

server plain adminuser adminpw

E-MailRelay kann mittels

sudo emailrelay -t --as-server --forward-on-disconnect --log --verbose --log-file mailrelay.log --log-time --port 587 --forward-to localhost:1025 --server-auth ./secret.auth

als Proxy vor MailHog gestartet werden.

Der Parameter -t startet den Proxy in einer Terminal-Sitzung. Das macht es einfacher, den Server neu zu starten. Der Relay-Host muss auf die mit dem -port spezifizierte Adresse zeigen.

etcdctl set /config/postfix/relayhost 192.168.56.1:587

Anschließend kann das entsprechende Passwort für Postfix konfiguriert werden. Beim Verschicken von Mails wird dann die SASL-Authentifizierung verwendet:

etcdctl set /config/postfix/sasl_username adminuser
etcdctl set /config/postfix/sasl_password adminpw