Shopware-Bestellmails werden nicht versendet
Bestellungen werden im Shopware-Backend angelegt, aber der Kunde oder Shopbetreiber erhält keine Bestellbestätigung. Diese Anleitung zeigt, wie Mailer, Flow Builder, Message Queue, Scheduled Tasks und Zahlungsarten systematisch geprüft werden.
Bestellung vorhanden, Bestellbestätigung fehlt.
Mailer, Flow Builder oder Message Queue arbeitet nicht korrekt.
Nicht sofort Plugins deaktivieren oder Datenbankeinträge ändern.
1. Fehlerbild zuerst genau eingrenzen
Vor Änderungen am Shop muss geklärt werden, welche E-Mails fehlen. Nicht jeder fehlende Versand hat dieselbe Ursache.
- Fehlt nur die Bestellbestätigung an den Kunden?
- Fehlt nur die Benachrichtigung an den Shopbetreiber?
- Fehlen beide E-Mails?
- Tritt der Fehler bei jeder Bestellung auf?
- Tritt er nur bei bestimmten Zahlungsarten auf?
- Werden andere Shopware-E-Mails weiterhin versendet?
- Landet die Nachricht im Spam- oder Quarantäneordner?
Eine Testbestellung mit Vorkasse durchführen. Danach denselben Ablauf mit PayPal, Kreditkarte oder einer anderen betroffenen Zahlungsart wiederholen. Dadurch lässt sich erkennen, ob der Fehler allgemein oder zahlungsabhängig auftritt.
| Beobachtung | Wahrscheinlicher Prüfbereich |
|---|---|
| Keine E-Mail wird versendet | Mailer, SMTP-Zugang, Message Queue oder Server |
| Nur Bestellmails fehlen | Flow Builder, Ereignis oder E-Mail-Vorlage |
| Nur einzelne Zahlungsarten betroffen | Zahlungsstatus, Plugin-Ereignis oder Flow-Bedingung |
| E-Mails kommen stark verzögert | Message Queue, Worker oder Cronjob |
| Nur interne Empfänger fehlen | Empfänger-Konfiguration des jeweiligen Flows |
2. Mailer-Konfiguration prüfen
In der Shopware-Administration muss zunächst kontrolliert werden, über welchen Transportweg E-Mails versendet werden. Bei SMTP sind insbesondere Server, Port, Benutzername, Passwort und Verschlüsselung relevant.
- Shopware-Administration öffnen.
- Mailer- beziehungsweise E-Mail-Konfiguration aufrufen.
- Absenderadresse und Absendername kontrollieren.
- SMTP-Server, Port und Verschlüsselung prüfen.
- Zugangsdaten bei Bedarf neu eintragen und speichern.
- Danach eine neue Testbestellung durchführen.
Port und Verschlüsselung müssen zusammenpassen. Häufig verwendete Kombinationen sind Port 465 mit SSL oder Port 587 mit STARTTLS. Maßgeblich sind jedoch die Vorgaben des jeweiligen E-Mail-Anbieters.
Absenderadresse kontrollieren
Die verwendete Absenderadresse sollte zu der Domain gehören, über deren Mailserver versendet wird. Eine abweichende oder nicht freigegebene Absenderadresse kann vom SMTP-Server oder vom Empfängersystem abgelehnt werden.
Zusätzlich sollten die DNS-Einträge der Versanddomain geprüft werden. Dazu gehören insbesondere SPF, DKIM und gegebenenfalls DMARC. Diese Einträge beeinflussen die Zustellbarkeit, ersetzen aber nicht die Prüfung des eigentlichen Shopware-Versands.
3. Flow Builder kontrollieren
In Shopware 6 werden viele E-Mails über den Flow Builder ausgelöst. Für die Bestellbestätigung muss ein aktiver Flow vorhanden sein, dessen Ereignis bei einer Bestellung ausgelöst wird.
Im Flow prüfen
- Ist der Flow aktiv?
- Ist das richtige Ereignis ausgewählt?
- Ist die Aktion zum Versenden einer E-Mail vorhanden?
- Wurde die richtige E-Mail-Vorlage zugeordnet?
- Ist der Empfänger korrekt konfiguriert?
- Verhindert eine Regel oder Bedingung die Ausführung?
- Ist der Flow auf den richtigen Verkaufskanal begrenzt?
Ein zusätzlicher Bestellmail-Flow kann später doppelte Bestellbestätigungen verursachen. Zuerst den vorhandenen Flow und dessen Bedingungen prüfen.
Empfänger im Flow
Für die Kundenbestätigung wird normalerweise der Kunde aus dem ausgelösten Ereignis verwendet. Eine interne Bestellbenachrichtigung an den Shopbetreiber benötigt dagegen eine feste oder aus der Verkaufskanal-Konfiguration übernommene Empfängeradresse.
4. E-Mail-Vorlagen und Verkaufskanal prüfen
Auch bei einem funktionierenden Flow kann der Versand scheitern, wenn die zugeordnete E-Mail-Vorlage fehlerhaft oder für die verwendete Sprache nicht vollständig gepflegt ist.
- Betreff der Vorlage vorhanden
- HTML-Inhalt vorhanden
- Textversion vorhanden
- Inhalt in der verwendeten Sprache gepflegt
- Keine fehlerhaften Twig-Anweisungen
- Absender für den Verkaufskanal vorhanden
- Domain und Sprache korrekt zugeordnet
Tritt das Problem unmittelbar nach einer Änderung der E-Mail-Vorlage auf, sollte zunächst auf eine funktionierende Version zurückgegangen oder die Änderung schrittweise entfernt werden.
5. Message Queue kontrollieren
Shopware verarbeitet verschiedene Aufgaben asynchron über die Message Queue. Dazu kann auch der E-Mail-Versand gehören. Werden die Nachrichten nicht abgearbeitet, bleiben E-Mails aus oder werden erst mit erheblicher Verzögerung verschickt.
In das Shopware-Verzeichnis wechseln
cd /pfad/zum/shopware-verzeichnis
Message Queue testweise abarbeiten
bin/console messenger:consume default --time-limit=60
Bei Installationen mit einem festen PHP-Pfad kann der Befehl beispielsweise so ausgeführt werden:
/usr/bin/php bin/console messenger:consume default --time-limit=60
Danach neue Testbestellung ausführen
Wird die zuvor fehlende E-Mail nach dem manuellen Start des Workers versendet, liegt das Problem sehr wahrscheinlich an einem fehlenden oder nicht funktionierenden dauerhaften Worker beziehungsweise Cronjob.
Das ist durch den Parameter --time-limit=60 beabsichtigt. Für den dauerhaften Betrieb muss der Prozess regelmäßig neu gestartet oder über einen Prozessmanager betrieben werden.
6. Scheduled Tasks prüfen
Scheduled Tasks führen wiederkehrende Aufgaben aus und übergeben diese zur Verarbeitung an die Message Queue. Ein nicht laufender Scheduled-Task-Prozess kann daher weitere Hintergrundprozesse beeinträchtigen.
Status anzeigen
bin/console scheduled-task:list
Die Ausgabe zeigt unter anderem den Namen, die nächste und letzte Ausführung sowie den jeweiligen Status der Tasks.
Scheduled Tasks testweise starten
bin/console scheduled-task:run --time-limit=60
Mit festem PHP-Pfad:
/usr/bin/php bin/console scheduled-task:run --time-limit=60
Zuerst Scheduled Tasks starten, danach die Message Queue abarbeiten und anschließend eine neue Testbestellung durchführen.
7. Shopware- und Server-Logs auswerten
Bleibt der Versand weiterhin aus, müssen die Logdateien zum Zeitpunkt der Testbestellung geprüft werden.
Shopware-Logverzeichnis anzeigen
ls -lah var/log/
Letzte Einträge einer Logdatei ansehen
tail -n 200 var/log/prod-*.log
Nach typischen Mailfehlern suchen
grep -RiE "mail|mailer|smtp|transport|messenger|exception" var/log/ | tail -n 200
Zusätzlich können die Logs des Webservers, PHP-Prozesses, Mailservers oder Hosters relevant sein.
| Fehlerhinweis | Mögliche Ursache |
|---|---|
| Authentication failed | SMTP-Benutzername oder Passwort falsch |
| Connection refused | Port gesperrt, Server falsch oder Dienst nicht erreichbar |
| Connection timed out | Firewall, Hosting-Sperre oder falscher SMTP-Host |
| Unable to connect with STARTTLS | Falsche Verschlüsselung oder Serverkonfiguration |
| Twig- oder Template-Fehler | Fehlerhafte E-Mail-Vorlage |
| Messenger-Exception | Fehler bei der Verarbeitung der Warteschlange |
8. Fehler nach Zahlungsart unterscheiden
Werden Bestellmails bei Vorkasse versendet, fehlen aber bei PayPal, Kreditkarte oder Amazon Pay, funktioniert der Mailer grundsätzlich. Dann muss die Verarbeitung der betroffenen Zahlungsart genauer untersucht werden.
Zu kontrollierende Punkte
- Wird die Bestellung vollständig angelegt?
- Welchen Bestellstatus erhält sie?
- Welchen Zahlungsstatus erhält sie?
- Wird der vorgesehene Flow ausgelöst?
- Enthält der Flow Bedingungen zum Zahlungsstatus?
- Gibt es Fehler im Log des Zahlungsplugins?
- Wurde das Zahlungsplugin kürzlich aktualisiert?
- Funktionieren Webhooks und Rückleitungen des Anbieters?
Ist nur eine Zahlungsart betroffen, sollte nicht zuerst die globale SMTP-Konfiguration verändert werden. Der Vergleich der Bestell- und Zahlungsstatus liefert meist die bessere Spur.
9. Cronjobs oder Worker dauerhaft einrichten
Funktioniert der Versand nach der manuellen Ausführung der CLI-Befehle, müssen Message Queue und Scheduled Tasks dauerhaft auf dem Server verarbeitet werden.
Beispiel für Scheduled Tasks
* * * * * cd /pfad/zum/shopware-verzeichnis && /usr/bin/php bin/console scheduled-task:run --time-limit=55 >> /dev/null 2>&1
Beispiel für die Message Queue
* * * * * cd /pfad/zum/shopware-verzeichnis && /usr/bin/php bin/console messenger:consume default --time-limit=55 --memory-limit=512M >> /dev/null 2>&1
PHP-Pfad, Shopware-Verzeichnis, Speicherlimit und Ausführungsart müssen an das Hosting angepasst werden. Bei größeren Shops ist ein dauerhaft über Supervisor oder systemd überwachter Worker meist geeigneter als ein einfacher Cronjob.
10. Abschlusskontrolle
Nach jeder Änderung sollte eine vollständig neue Bestellung ausgelöst werden. Das erneute Öffnen einer vorhandenen Bestellung ersetzt diesen Test nicht.
- Neue Testbestellung wurde angelegt
- Kundenmail wurde empfangen
- Interne Benachrichtigung wurde empfangen
- HTML- und Textdarstellung funktionieren
- Absender und Antwortadresse stimmen
- Keine neue Exception im Shopware-Log
- Message Queue wird dauerhaft verarbeitet
- Scheduled Tasks werden regelmäßig ausgeführt
- Mehrere Zahlungsarten wurden getestet
- Spam- und Quarantäneordner wurden kontrolliert
Erst wenn mehrere Testbestellungen mit unterschiedlichen Zahlungsarten korrekt versendet wurden und die Prozesse auch ohne manuellen CLI-Aufruf weiterlaufen, ist die Störung dauerhaft behoben.
Häufige Fragen
Warum werden Bestellmails erst einige Minuten später versendet?
Eine häufige Ursache ist eine verzögerte Verarbeitung der Message Queue. Der Versand erfolgt dann erst, wenn ein Worker oder Cronjob die wartenden Nachrichten abarbeitet.
Warum funktioniert Vorkasse, aber PayPal nicht?
In diesem Fall funktioniert der grundsätzliche Mailversand wahrscheinlich. Geprüft werden sollten der Zahlungsstatus, das Zahlungsplugin, die Rückmeldung des Zahlungsanbieters und mögliche Bedingungen im Flow Builder.
Kann ich eine fehlende Bestellmail erneut versenden?
Abhängig von Shopware-Version, Erweiterungen und Konfiguration kann eine Nachricht aus der Bestellung heraus erneut ausgelöst werden. Vorher sollte jedoch die Fehlerursache behoben werden, damit neue Bestellungen zuverlässig verarbeitet werden.
Ist eine vorhandene Bestellung ein Beweis, dass alles funktioniert?
Nein. Bestellung, Zahlung, Flow-Ausführung und E-Mail-Versand sind getrennte Verarbeitungsschritte. Eine Bestellung kann korrekt gespeichert sein, obwohl der nachgelagerte Mailversand scheitert.
Müssen Message Queue und Scheduled Tasks beide laufen?
Für einen stabilen Shopbetrieb sollten beide Prozesse korrekt eingerichtet sein. Scheduled Tasks stoßen wiederkehrende Aufgaben an, während die Message Queue asynchrone Nachrichten verarbeitet.
Verwandte Shopware-Anleitungen
Bestellmails werden weiterhin nicht versendet?
Ich prüfe Mailer, Flow Builder, Message Queue, Scheduled Tasks, Zahlungsarten und Serverkonfiguration direkt im bestehenden Shopware-Shop.
Technische Prüfung anfragen