Zum Inhalt

Ausgehende E-Mails

Diese Seite beschreibt, wie unsere Apps E-Mails verschicken, wie Empfänger prüfen, dass sie echt sind, und welcher Teil davon im Repo steht. Wo Mails an @garage-lab.de ankommen, steht in Eingehende E-Mails.

Überblick

Was Wo Verwaltet über
Mails der Apps verschicken (Benachrichtigungen, Einladungen, Passwort vergessen) Mailjet, ein Managed Service Web-Oberfläche von Mailjet; Zugangsdaten und Servereinstellungen im Repo
DNS-Einträge für den Versand (SPF, DKIM, DMARC) deSEC Repo
flowchart LR
    subgraph hosts ["werner, containerhost"]
        apps["Apps"]
    end

    mailjet["Mailjet<br>SMTP"]
    empf(["Empfänger"])
    hostingde["hosting.de<br>Postfächer"]
    dns["DNS bei deSEC<br>SPF, DKIM, DMARC"]

    apps -->|"SMTP, verschlüsselt"| mailjet --> empf
    empf -.->|prüft Absender| dns
    empf -->|Antworten an @garage-lab.de| hostingde

Mails der Apps

Die Apps verschicken ihre Mails nicht selbst, sondern geben sie per SMTP an Mailjet, das sie zustellt. Dazu gehören zum Beispiel das Forum, die Nextcloud, Vaultwarden, das Membertool und Attraccess auf containerhost.

Die Postfächer bei hosting.de nutzen die Apps dafür nicht: Sie sind für persönliche Mails gedacht und haben Grenzen dafür, wie viele Mails man verschicken darf. In diese Grenzen sind wir mit den Mails der Apps, etwa Benachrichtigungen aus dem Forum, regelmäßig hineingelaufen. Mailjet ist für viele automatisch verschickte Mails gemacht und kümmert sich auch um das, was dabei sonst aufwendig ist: Ruf der Server, Abmeldungen, Rückläufer.

Im Repo steht dafür:

  • Servername und Ports von Mailjet in syslet/mailjet.cue, gemeinsam für alle Hosts. Die Stack-Dateien verweisen darauf, statt die Werte zu wiederholen, etwa settings.mailjet.hostname in syslet/werner/stack-vaultwarden.cue. Ändern sich Servername oder Ports, ändert man nur diese eine Datei, nicht jede App.
  • Die Zugangsdaten für Mailjet als Secrets mailjet-username und mailjet-password, je Host in creds-mailjet.enc.yaml, zum Beispiel syslet/werner/creds-mailjet.enc.yaml.
  • Die Absenderadresse in der Stack-Datei der App, zum Beispiel vaultwarden@garage-lab.de.

Listmonk verschickt den Newsletter ebenfalls über einen SMTP-Server, seine Einstellungen stehen aber nicht in der Stack-Datei, sondern in Listmonk selbst (siehe Listmonk).

Domains, Absenderadressen und Zugangsdaten selbst werden in der Web-Oberfläche von Mailjet gepflegt (siehe Mailjet).

DNS-Einträge für Mail

Damit Mails von uns nicht als Spam gelten, prüfen die Empfänger anhand von DNS-Einträgen, ob der Absender echt ist. Diese Einträge stehen in den Zonendateien unter desec/:

SPF
Ein TXT-Eintrag auf der Domain selbst, der aufzählt, welche Server Mails für die Domain verschicken dürfen; bei garage-lab.de unter anderem Mailjet (include:spf.mailjet.com) und hosting.de.
DKIM
Mailjet unterschreibt jede Mail; den öffentlichen Schlüssel zum Prüfen veröffentlichen wir als TXT-Eintrag mailjet._domainkey.
DMARC
Der TXT-Eintrag _dmarc legt fest, was Empfänger mit Mails tun sollen, die SPF und DKIM nicht bestehen; bei garage-lab.de ablehnen (p=reject). So kann niemand sonst Mails verschicken, die glaubhaft von garage-lab.de kommen.

Dazu kommen Einträge, mit denen Mailjet und andere Dienste prüfen, dass uns die Domain gehört, etwa mailjet._a55aa1a4.

Weiterlesen