E-Mail-Versand mit TYPO3 richtig einrichten

Hier findest du Hilfe den Mailversand mit TYPO3 - z.B. für Kontaktformulare oder Newsletter zu meistern.

Der Mailversand mit TYPO3 - z.B. für Kontaktformulare oder Newsletter ist ein komplexes Thema mit vielen Fallstricken und potentiellen Problemen. Hier unsere Tipps und Tricks, um Deine Probleme zu lösen.

Zuerst: Die richtigen Einstellungen in TYPO3

Damit TYPO3 überhaupt E-Mails verwenden kann, müssen dafür die richtigen Globalen Einstellungen vorgenommen werden. Die findet ihr über das Module “Einstellungen (Settings)” > “Configure Installation-Wide Options”.

TYPO3 E-Mail + Mailsversand Einstellungen

Ohne richtigen Absender geht nix

Häufigstes Problem nicht versendeter oder ankommender E-Mails aus TYPO3 sind die nicht eingetragene (oder falsche) Standard-Mailadresse.

Welche Absender-E-Mailadresse verwenden? 

Du solltest hier nur eine Mailadresse verwenden, bei der du auch Zugriff auf die Domainverwaltung hast, um den SPF-Eintrag zu setzen. Das heißt, mit mywebsite1234@gmail.com kommst du hier nicht weiter, weil du da keinen SPF-Record setzen kannst.

Bisweilen sind auch Mailadressen von Domains schwierig, wenn bei diesen Exchange-Server verwendet werden. Da helfen manchmal 1: ein Anruf bei der IT-Abteilung oder 2: die Verwendung einer bisher nicht benutzte Subdomain-Adresse wie z.B. noreply@t3mail.mywebsite.org, bei der du einen SPF-Record setzen und ggf. auch mal ein Postfach/SMTP einrichten kannst.

Verwendest du als Default-Absender z.B. 

[MAIL][defaultMailFromAddress] = no-reply@my-website.de

.. solltest du später auch für Deine Domain (in dem obigen Beispiel wäre das my-webseite.de) unbedingt einen SPF-Record (siehe unten) anlegen, sonst kann es sein, dass die E-Mails nie ankommen oder gar nicht erst vom Mailserver verschickt werden.

Wir setzen in der Regel auch noch den [MAIL][defaultMailFromName]. Das sieht einfach ein wenig netter und vertrauenswürdiger aus in der Inbox. 

Ist der Absender geklärt, muss die E-Mail auch noch transportiert werden. Hier bieten sich für den Livebetrieb ein Versand über sendmail oder SMTP an.

Versand via PHP sendmail

Im einfachsten Falle verschickt manVersand via PHP sendmail die E-Mails einfach über die Software sendmail. Sendmail ist ein Urgestein des Internets und auf fast allen Webservern verfügbar, obgleich wenn die Verwendung vom sendmail immer weiter abnimmt

Der Vorteil von Sendmail ist, dass man keinen eigenen Mailserver (mit SMTP-Daten) benötigt. Nachteil ist, dass Sendmail angeblich zu einem etwas höheren Spam-Faktor führen soll.

Um via sendmail in TYPO3 zu versenden, musst du dies in den Globalen TYPO3-Einstellungen setzen:  

[MAIL][transport] = sendmail

Weiterhin musst du auch den Pfad zu Sendmail und den richtigen sendmail command setzen. Dies ist in der PHP-Info (abrufbar im TYPO3-Backend über das Modul Environment > PHP-Info) unter sendmail_path zu finden.

Bei den den meisten Hostern (z.B. Mittwald, domainfactory, Hetzner) lautet z.B. die richtige Einstellung: 

[MAIL][transport_sendmail_command] = /usr/sbin/sendmail -t

Versand via SMTP

Nimmst du nicht sendmail sondern einen SMTP-Server, trage ein: 

[MAIL][transport] = smtp 

… und ergänze die korrekten Zugangsdaten (wie z.B. auch beim Einrichten im Mailprogramm):

[MAIL][transport_smtp_encrypt] = SSL
[MAIL][transport_smtp_password] = password1234:)
[MAIL][transport_smtp_server] = smtp.my-website.de
[MAIL][transport_smtp_username] = user1345

Fragen und Antworten: TYPO3 & SMTP

Mögliche Probleme, die beim Versand via TYPO3 & SMTP auftreten können, sind: 

  • Problem: Du verschickst via Exchange/Outlook365 und der Server erlaubt keine Mails von anderen (Webservern)
    • Lösung: Subdomain oder externen Mailing-Anbieter.
  • Problem: Am Anfang werden E-Mails schnell versendet, aber nach z.B. 1.000 E-Mails geht es nur noch langsam weiter.
    • Lösung: Prüfe, ob dein Hoster/Mailserver Tages- und/oder Wochenlimits für den Mailversand hat.
  • Problem: Die SMTP-Zugangsdaten scheinen nicht zu funktionieren.
    • Lösung: Teste die Zugangsdaten in einem lokalen Mailprogramm und versuche die richtigen, funktionierenden Einstellungen zu finden
  • Frage: Was ist das richtige Encypt-Protokoll?
    • Antwort: Frage bei Deinem Hoster nach.

Ohne SPF-Eintstellungen geht’s nicht

An dieser Stelle ein kleiner Exkurs zum Thema SPF. Das Sender Policy Framework (SPF) ist eine Methode zur Authentifizierung von E-Mails. Mithilfe eines SPF-Eintrags wird sichergestellt, dass ein bestimmter Server befugt ist, Mails für eine bestimmte Domain zu versenden. Dabei vergleicht der Empfänger-Mailserver die IP-Adresse des Absenders mit der Liste der für den Versand autorisierten IP-Adressen, die vom Absender im SPF-Eintrag veröffentlicht worden sind. 

Da E-Mails beim Versand häufig mehr als einen Server durchlaufen, ist es nötig, über den SPF-Eintrag im DNS Record alle befugten Server auszuweisen. Diese Info wird in einer TXT Datei (dem SPF-Record) hinterlegt. 

Die folgenden Schritte sind nötig, um einen sauberen SPF-Eintrag zu erstellen:

  • Identifiziere alle IP-Adressen und Mailserver, die von deiner Domain aus E-Mails versenden.
  • Identifiziere alle Domains, die in deinem DNS hinterlegt sind.
  • Erstelle für jede Domain einen eigenen SPF-Eintrag.
  • Der SPF-Eintrag beinhaltet verschiedene Tags:
    • v=spf1 (Version des Records; spf1 steht für die aktuell gültige Version)
    • a (autorisiert die IP im hinterlegten A-Record für den Versand; optional)
    • mx (autorisiert die IP im hinterlegten MailExchange-Record für den Versand; optional)
    • Ip4:xxx.x.x.x (alle erlaubten IP-Adressen)
    • -all (alle anderen Adressen sind nicht autorisiert und sollen abgewiesen werden; hard fail)
    • ~all (soft fail; andere Adressen sind nicht autorisiert, sollen aber dennoch akzeptiert werden. Achtung: bei vielen Anbietern wird ~all auch wie ein hard fail gehändelt, da es sicherer ist)
    • include:weiteredomain.com (füge weitere Domains hinzu, die als dritte Parteien für den Versand autorisiert sind, z.B. google)

Ein fertiger SPF-Eintrag könnte dann etwa so aussehen:

v=spf1 a mx ip4:192.0.0.1 include:my-other-mailserver.com -all

Für Domains, die du nicht für den Versand von E-Mails nutzt, würde der SPF-Eintrag wie folgt lauten:

v=spf1 -all
  • Veröffentliche den SPF-Eintrag: Folge den Anweisungen in deiner Domainverwaltung, um den SPF-Eintrag hinzuzufügen. Je nach Anbieter musst du entweder selbst eine TXT-Datei anlegen oder dies wird vom Anbieter für dich in den DNS-Einstellungen hinterlegt.
  • Überprüfe den SPF-Eintrag. Ob die Einstellungen korrekt sind, kannst du am einfachsten mit der mxtoolbox prüfen. Dafür einfach die “spf:domain” ins Eingabefeld eingeben und dann auf MXLookup klicken. Bitte beachte, dass es bis zu 24 Stunden dauern kann, bis der SPF-Eintrag aktiv wird. 

Best practices zu SPF-Einträgen

  • Nie mehr als einen SPF-Eintrag pro Domain anlegen.
  • Nicht mehr als 255 Zeichen im SPF-Eintrag
  • Den SPF-Eintrag so kurz wie möglich halten und darauf achten, nicht zu viele Includes zu verwenden (DNS-Lookup Limit von 10!)
  • Verwende niemals die Anweisung +all, da dies dem gesamten Internet erlaubt, E-Mails im Namen deiner Domain zu versenden!

Kommentare

Da haben der Jens und Mathias natürlich recht. Danke für den Hinweis. Ich habe das jetzt korrigiert.

Dort wo im Artikel [MAIL][transport] = /usr/sbin/sendmail -t steht müsste anstatt [MAIL][transport] -> [MAIL][transport_sendmail_command] stehen.

Danke für den tollen Beitrag!

Müsste die Einstellung nicht "[MAIL][transport_sendmail_command] = /usr/sbin/sendmail -t" heißen?


Kommentar schreiben

* Diese Felder sind erforderlich