Was dieses Modul tut #
Viele Dinge des Servers benachrichtigen dich per E-Mail: ein Zertifikat, das abläuft, eine Festplatte, die volläuft, der Bericht einer nächtlichen Aufgabe. Aber ein frisch installierter Server weiß nicht, wie er diese E-Mail versenden soll — oder er versucht es direkt und landet im Spam-Ordner, wenn er nicht ganz abgelehnt wird.
Das Modul smtp löst das, indem es die ausgehende E-Mail des Hosts gegen einen Smarthost konfiguriert (ein Relay, das tatsächlich zur Zustellung berechtigt ist: Amazon SES, ein Firmen-Mailserver, dein Anbieter …). Es richtet postfix so ein, dass es die gesamte Systempost an diesen Smarthost weiterleitet, speichert das Passwort sicher, schreibt den Absender so um, dass er gültig ist, und lässt dich den Versand testen, um zu bestätigen, dass er ankommt — wobei es dir den echten Fehler meldet, falls etwas schiefgeht.
Halte die Daten des Smarthosts bereit: Host, Port (normalerweise 587) und die Anmeldedaten, falls er Authentifizierung verlangt. Das Passwort wird nicht in der Befehlszeile übergeben: Es wird über stdin oder aus dem Geheimnisspeicher gelesen, damit es nicht im Verlauf landet.
Häufige Aufgaben #
Wähle aus, was du tun möchtest. Jedes Rezept bringt den fertigen Befehl mit — tausche einfach den Smarthost und den Absender gegen deine aus und drücke Kopieren.
1
Das E-Mail-Relay konfigurieren
Richte den Server auf deinen Smarthost aus, damit die E-Mail wirklich rausgeht.
Verbinde dich per SSH mit deinem Server über den Benutzer ubuntu.
Führe den Befehl mit den Daten deines Smarthosts aus. Das Passwort wird über stdin abgefragt, sodass es nicht im Verlauf landet:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]Wenn dein Smarthost keine Authentifizierung verlangt, lass --user weg. Für einen anderen Port oder TLS-Modus füge --port oder --no-tls hinzu.
[email protected]. Fahre mit dem Rezept Eine Test-E-Mail senden fort.2
Eine Test-E-Mail senden
Bestätige, dass eine Nachricht rausgeht und ankommt, bevor du dich auf die Warnungen verlässt.
Sende eine Test-E-Mail an eine Adresse, wo du sie überprüfen kannst:
$ sudo imaxe smtp test --to [email protected]Wenn du --to weglässt, wird sie an den konfigurierten Absender gesendet. Prüfe dein Postfach (und den Spam-Ordner), um die Zustellung zu bestätigen.
3
Den E-Mail-Status ansehen
Prüfe auf einen Blick, ob das Relay konfiguriert und aktiv ist.
Eine Zusammenfassung des Relays, des Smarthosts, des Absenders und des MTA-Status:
$ sudo imaxe smtp statusBrauchst du es für ein Skript oder ein Dashboard? Füge --json für eine maschinenlesbare Ausgabe hinzu:
$ sudo imaxe smtp status --json4
Die effektive Konfiguration ansehen
Frage die aktiven Einstellungen ab, ohne das Passwort offenzulegen.
Zeigt Host, Port, Benutzer, Absender und TLS-Modus, die tatsächlich in Verwendung sind (das Passwort wird nie ausgegeben):
$ sudo imaxe smtp show5
Das Relay entfernen
Deaktiviert die Weiterleitung und setzt postfix in seinen vorherigen Zustand zurück.
Deaktiviert das ausgehende E-Mail-Relay und stellt die Basiskonfiguration von postfix wieder her:
$ sudo imaxe smtp removeconfigure einrichten.Am häufigsten ist der Absender im Smarthost nicht verifiziert (SES verlangt die Verifizierung der Domäne oder der Adresse aus --from), oder die Anmeldedaten sind falsch. Führe imaxe smtp test aus: Es gibt dir den echten Fehler des MTA zurück, damit du genau weißt, was anzupassen ist.
Synopsis #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]Alle Unterbefehle benötigen root-Rechte (verwende sudo), weil sie die Konfiguration von postfix anfassen, in /etc/imaxe/ schreiben und Systemdienste neu laden. Das Passwort des Smarthosts wird nie als Flag übergeben: Es wird über stdin oder aus dem Geheimnisspeicher gelesen. Füge status oder show ein --json hinzu, um eine maschinenlesbare Ausgabe zu erhalten, die für Scripting geeignet ist.
Unterbefehle #
| Unterbefehl | Was er tut | Relevante Flags |
|---|---|---|
| configure | Konfiguriert das ausgehende E-Mail-Relay gegen einen Smarthost. Das Passwort wird über secrets/stdin gelesen. | --host, --port, --user, --from, --tls / --no-tls |
| test | Sendet eine Test-E-Mail und meldet den echten Fehler des MTA, falls sie fehlschlägt. | --to |
| status | Status: Relay konfiguriert, Smarthost, Absender und aktiver MTA. | --json |
| show | Zeigt die effektive Konfiguration, ohne das Passwort offenzulegen. | --json |
| remove | Deaktiviert das Relay und stellt postfix wieder her. | — |
Argumente und Flags #
| Flag | Typ | Standard | Beschreibung |
|---|---|---|---|
| --host req. | string | — | SMTP-Smarthost, an den die E-Mail weitergeleitet wird (z. B. email-smtp.eu-west-1.amazonaws.com). Erforderlich bei configure. |
| --port | int | 587 | SMTP-Port des Smarthosts. |
| --user | string | — | SMTP-Benutzer zur Authentifizierung. Wird er weggelassen, wird das Relay ohne Authentifizierung konfiguriert. |
| --from | string | — | Schreibt den Absender aller Nachrichten um (sender_canonical). Nützlich, um eine im Smarthost verifizierte Adresse zu verwenden. |
| --tls / --no-tls | bool | --tls | Erzwingt TLS für die Verbindung mit dem Smarthost (Standard). --no-tls deaktiviert es. |
| --to | string | remitente | Bei test: Empfänger der Test-E-Mail. Standardmäßig der konfigurierte Absender. |
| --json | bool | false | Bei status/show gibt es das Ergebnis als JSON auf stdout aus. |
Es gibt keine Option --password. Die Anmeldedaten werden während configure über stdin oder aus dem Geheimnisspeicher gelesen (password_secret, standardmäßig smtp), sodass sie nie im Verlauf oder in der Prozesstabelle erscheinen.
Dateien und Pfade #
| Pfad | Inhalt |
|---|---|
| /etc/imaxe/smtp.yml | Konfiguration des Moduls: Host, Port, TLS, Benutzer, Absender und Verweis auf das Geheimnis des Passworts. |
| /etc/postfix/main.cf | Konfiguration von postfix, die das Modul für die Weiterleitung anpasst (relayhost, Canonical des Absenders …). |
| /var/log/mail.log | Protokoll von postfix mit jedem Zustellversuch und dem Grund der Ablehnungen. |
Beispiel für smtp.yml:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpExit-Codes und Logs #
Jede Ausführung gibt einen Code zurück, den du mit echo $? prüfen kannst — nützlich für die Verkettung in Skripten:
test wurde die E-Mail zur Zustellung angenommen.Verfolge das Mail-Log live, während du einen Versand debuggst:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]Fehlerbehebung #
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Es erscheint AUTH (Code 4) | Benutzer oder Passwort des Smarthosts falsch. | Prüfe --user und führe configure erneut aus, wobei du das Passwort erneut über stdin eingibst. |
| Es erscheint SEND (Code 5), Absender abgelehnt | Die Adresse aus --from ist im Smarthost nicht verifiziert (typisch bei SES). | Verifiziere die Domäne oder die Adresse beim Anbieter und wiederhole den test. |
| Es erscheint CONFIG (Code 3) | Das Relay ist auf diesem Host noch nicht konfiguriert. | Führe imaxe smtp configure mit den Daten des Smarthosts aus. |
| Die E-Mail geht raus, landet aber im Spam | Es fehlt die Ausrichtung von SPF/DKIM in der Absenderdomäne. | Konfiguriere die Einträge des E-Mail-Anbieters für die Domäne aus --from. |
Steckst du beim Modul E-Mail fest?
Schreib uns mit der Ausgabe von «imaxe <module> status --json» und wir antworten dir schnell.