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, etwasettings.mailjet.hostnameinsyslet/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-usernameundmailjet-password, je Host increds-mailjet.enc.yaml, zum Beispielsyslet/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.deunter 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
_dmarclegt fest, was Empfänger mit Mails tun sollen, die SPF und DKIM nicht bestehen; beigarage-lab.deablehnen (p=reject). So kann niemand sonst Mails verschicken, die glaubhaft vongarage-lab.dekommen.
Dazu kommen Einträge, mit denen Mailjet und andere Dienste prüfen, dass uns die Domain gehört, etwa mailjet._a55aa1a4.
Weiterlesen¶
- DNS: die Zonendateien
- Eingehende E-Mails: die Postfächer bei hosting.de
- Mailjet
- Secrets im Repo
- Mailjet-Doku