Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » WvdS DW Mail Transport

WvdS DW Mail Transport

Mail Transport versendet Wiki-Post über SMTP-Einlieferung statt über PHPs mail() und richtet den Absender so aus, dass die Nachricht nicht im Spam-Ordner landet. Gedacht ist das Paket für Verwalter, die Einmalcodes, Benachrichtigungen und Einladungen zuverlässig zustellen müssen — die Installation allein ändert dabei nichts, erst die Konfiguration schaltet den Versand um.

Erste Schritte

Häufige Aufgaben

Was Sie wollen Für wen Wo Sie das tun Anleitung
den Versand auf SMTP umstellen Verwaltung Administration > Mailversand Konfiguration
eine Testnachricht senden Verwaltung Administration > Mailversand Betrieb
herausfinden, warum Post im Spam landet Verwaltung Absender-Ausrichtung
einen fehlgeschlagenen Versand nachvollziehen Verwaltung Mitschrift Diagnose
prüfen, was ohne Konfiguration geschieht Verwaltung Die Installation ändert für sich genommen nichts
wissen, was dieses Paket nicht leistet Verwaltung Grenzen

Zweck

Versendet Wiki-Post über SMTP-Einlieferung statt über PHPs mail() — und richtet den Absender so aus, dass die Nachricht nicht im Spam-Ordner abgelegt wird.

DokuWiki versendet ausschließlich über mail(). Das setzt voraus, dass auf der Maschine ein Mailprogramm läuft und ausgehend zustellen darf, was auf vielen Installationen nicht zutrifft. Unter Windows ohne gesetztes sendmail_path versucht PHP eine SMTP-Verbindung nach localhost:25; lauscht dort nichts, scheitert jeder Versand — und Funktionen, die auf Post angewiesen sind, etwa der Einmalcode von wkidentity, sind stillschweigend wirkungslos.

Ein angenommener Versand ist keine Zustellung. Ob eine Nachricht im Posteingang oder im Spam-Ordner landet, entscheidet der empfangende Server anhand der Absenderidentität, nicht anhand des Transportwegs. Das ist die zweite Hälfte der Aufgabe und wird seltener genannt.

Für Autoren ist nichts davon sichtbar; das Plugin richtet sich ausschließlich an den Betreiber.


Die Installation ändert für sich genommen nichts

transport beginnt bei default. Das Wiki benutzt also weiterhin mail(), bis ausdrücklich umgeschaltet wird.

Das ist ausdrücklich so gebaut: die gesamte Konfiguration lässt sich einrichten und durchprobieren, ohne den bestehenden Postweg zu gefährden. transport wird zuletzt umgestellt, nicht zuerst.

Konfiguration

Einstellung Vorgabe Bedeutung
transport default smtp leitet über dieses Plugin. Nichts anderes wirkt, solange das nicht umgestellt ist
profile custom Anbieterprofil, das Server, Port und Verschlüsselung mitbringt: gmail, outlook oder custom
host leer Einlieferungsserver
port 0 Einlieferungsport, üblich 587 oder 465
encryption leer tls = STARTTLS, ssl = unmittelbares TLS, none = Klartext
username leer Postfach, über das eingeliefert wird
password leer dessen Kennwort — oder ein Geheimnisverweis
fromname leer Anzeigename neben der ausgerichteten Adresse
secret_root leer Wurzelverzeichnis, in dem file:-Verweise lesen dürfen
align_sender 1 From auf das einliefernde Postfach ausrichten; die ursprüngliche Adresse wandert nach Reply-To
verify_peer 1 Serverzertifikat prüfen
timeout 15 Verbindungszeitüberschreitung in Sekunden

Das Kennwort muss hier nicht als Wert stehen. Ein Verweis auf WvdS Vault hält es an einem Ort und mit Zugriffsprotokoll:

vault:mail-smtp

Absender-Ausrichtung: eine Korrektheitsfrage, keine Kosmetik

Ist align_sender aktiv, trägt From das Postfach, über das tatsächlich eingeliefert wird; die ursprüngliche Adresse bleibt als Reply-To erhalten.

Der Grund ist nicht Optik: es hindert das Wiki daran, eine Identität zu behaupten, für die es sich nicht authentifizieren kann. Genau diese Behauptung ist es, die der empfangende Server gegen SPF, DKIM und DMARC prüft und im Zweifel als Spam einsortiert.

Manche Clients erlauben es, ausdrücklich an From zu antworten und Reply-To dabei zu übergehen. Das ist Verhalten des Clients und vom Absender aus nicht verhinderbar.

Diagnose: Mitschrift statt Vermutung

Der Verwaltungsbildschirm bietet einen Testversand, und der ist als Messgerät gebaut: er meldet nicht nur das Ergebnis, sondern die Mitschrift des Gesprächs mit dem Server. Damit benennt ein Fehlschlag den Schritt, an dem er scheiterte, statt nur zu melden, dass Post nicht funktioniert.

Die zweite Hälfte ist der Zustellbarkeitsbericht: er liest die tatsächlichen DNS-Einträge der Domäne — SPF, DKIM, DMARC — statt sie anzunehmen, und meldet, was fehlt. Erst das macht den Fall „bei der Einlieferung angenommen, beim Empfänger in Quarantäne„ überhaupt diagnostizierbar.

Dazu die Erreichbarkeitsprüfung: nimmt der Einlieferungsport von diesem Rechner aus eine TCP-Verbindung an? Sie steht auch auf der Kommandozeile zur Verfügung und braucht dort keine Anmeldung.


Voraussetzungen

  • PHP 8.2 oder neuer und Administratorrechte.
  • Ein Postfach zum Einliefern und ausgehender Zugang zu dessen Einlieferungsport, üblich 587 oder 465. Gehostete Umgebungen sperren beide häufig.
  • WvdS Vault ist wahlweise — für das Kennwort als Verweis statt als Wert.

Grenzen

  • Es kann keine DNS-Einträge veröffentlichen. SPF und DKIM liegen in der DNS-Zone und beim Anbieter. Das Plugin meldet, was fehlt; es sagt nie zu, dass eine Nachricht ankommt.
  • Eine saubere Mitschrift ist keine Zustellung. Einlieferung und Zustellung sind getrennte Urteile, und der stille Fehlschlag — angenommen, dann beim Empfänger einsortiert — sieht von hier aus genau wie Erfolg aus.
  • Anwendungsspezifische Kennwörter sind meist Pflicht, wo das Konto einen zweiten Faktor führt; das Kontokennwort wird bei der Einlieferung abgelehnt.
  • Passen encryption und Port nicht zusammen, erscheint das als Zeitüberschreitung, nicht als klare Fehlermeldung — beide Seiten warten darauf, dass die andere zuerst spricht.

Betrieb

  • transport zuletzt umstellen. Erst einrichten und prüfen; die Vorgabe hält den bestehenden Postweg währenddessen unangetastet.
  • SPF und DKIM veröffentlichen, bevor DMARC verschärft wird. Ein p=reject bei fehlendem SPF oder DKIM macht aus einem Spam-Ordner-Problem eine vollständige Nichtzustellung — auch an einen selbst, womit die einfachste Möglichkeit zum Testen entfällt.
  • Die DNS-Verbreitung abwarten, bevor geschlossen wird, ein veröffentlichter Eintrag habe keine Wirkung.
  • Nach einem Anbieterwechsel erneut prüfen. Server, Port, SPF-Kennung und die Regeln für anwendungsspezifische Kennwörter gehören dem Anbieter, und alle vier können sich ändern.
verify_peer nach jedem Diagnoselauf wieder einschalten. Abgeschaltet ist eine abgefangene Verbindung von einer echten nicht mehr zu unterscheiden — und zwar auf genau der Verbindung, die das Kennwort trägt. Das ist ein Diagnoseschritt, niemals eine Konfiguration zum Behalten. Dasselbe gilt für encryption = none: dabei geht das Kennwort im Klartext über die Leitung.

Paketangaben

Plugin: wkmail
Namespace: lib/plugins/wkmail/
Autor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Lizenz: GPL 2

de/wiki/dwe/wkmail/start.txt · Zuletzt geändert: von 0.0.0.0