E-Mail wird bei neuer Bestellung nicht verschickt

Hallo miteinander,

ich weiß nicht ob ich etwas übersehen habe oder ob es irgendwo einen Fehler gibt - was muss ich anstellen, dass bei einer neuen Bestellung die Bestellbestätigungs-Email versendet wird? Aktuell erhalte weder ich als Shopbetreiber noch der Kunde als Besteller eine E-Mail.

SMTP ist konfiguriert und funktioniert bei allen anderen E-Mails auch einwandfrei.

Wenn ich in die Logs schaue, sehe ich dass auch kein Sende-Event ausgeführt wird. Bei Absenden einer Bestellung werden dort lediglich folgende beide Logs gespeichert:

mail.before.send
checkout.order.placed

Wenn ich bei anderen Aktionen die Logs anschaue, findet dort auch immer eine Event mail.sent statt, womit ja schätzungsweise dann die E-Mail versendet wird.

Muss ich da irgendetwas konfigurieren? Ich habe folgendes konfiguriert:

  • Mailer-Konfiguration = SMTP-Server (funktioniert bei allen anderen E-Mails)
  • Stammdaten: Shopbetreiber-E-Mail-Adresse ist hingerlegt
  • Business-Events: Event „checkout.order.placed“ ist aktiv und als E-Mail-Template ist „Bestellbestätigung“ zugewiesen (War standardmäßig so).

Wenn ich z.B. den Bestellstatus dann von „Offen“ auf „In Bearbeitung“ stelle, wird die entsprechende E-Mail versendet - das funktioniert also.

Shopware-Version ist 6.3.5.2

Kann hier irgendjemand helfen? :slightly_smiling_face:

Vielen Dank schon mal!

Auf jeden Fall müsstest du bei den Business Events zwei Einträge erstellen, damit sowohl der Kunde als auch ihr als Händler eine Email erhaltet.

Hallo SmartStylez,

vielen Dank schon mal für die schnelle Antwort. Das habe ich soeben gemacht. Nun sehe ich in den Logs auch zwei Events „mail.before.send“ - einmal steht als Recipient jetzt der Shopbetreiber, einmal der Kunde. Das schaut schon mal gut aus, Danke!

Jedoch wird nach wie vor keine E-Mail versendet. Nach dem Event „checkout.order.placed“ passiert nichts mehr - meiner Einschätzung nach müsste dann doch ein Event mail.sent ausgeführt werden??

Kann ich evtl. irgendwo Fehlermeldungen dazu finden aus denen man vielleicht schlauer wird?

Du könntest in den Log-Dateien schauen. Funktionieren Testmails denn und kommen an?

Also ein Blick in die Logs zeigt das hier:

app.ERROR: Could not render Mail-Template with error message: Failed rendering string template using Twig: Impossible to access an attribute („shippingCosts“) on a null variable in „44cfc62154086b8528c937fb2f347737“ at line 22. Error Code:0 Template …

Was will mir dieser Fehler sagen? :slight_smile:

Zumindest scheint es irgendwie mit den Versandkosten zusammenzuhängen.

Also wenn ich diesen Part hier aus dem E-Mail-Template entferne funktioniert es wieder:

{% set delivery = order.deliveries.first %}

Versandkosten: {{order.deliveries.first.shippingCosts.totalPrice|currency(currencyIsoCode) }}

Sowie paar Zeilen weiter unten:

Gewählte Versandart: {{ delivery.shippingMethod.name }}
{{ delivery.shippingMethod.description }}

Wobei mir das Problem in erster Linie „order.deliveries.first“ zu sein scheint.

Hat hier irgendjemand eine Idee?

Ich hatte das selbe Problem als ich die Verwendete Zahlungsart in das Mailtemplate integrieren wollte.
Ich bin bei order.transactions.first auf die Nase gefallen, weil hier order.transactions[0] und auch mal order transactions.at(0) fehlerhafter Weise Vorgeschlagen wurden. Bei mir hat first geholfen.

Leider hat der Manuelle Testversand wenn auch mit Lücken im Text als Testcase immer funktioniert.
Der zur Verfügung stehende Assistent mit Vorschlägen zur Syntax hat leider in die Irre geführt und die

Fehlersuche inklusive Mailversand, Cronjobs und Tasks war weit.
Erst das Zurücksetzen des Templates hat uns riechen lassen, das dass, was hier Assistent und Testversand durchgehen lassen im Echtbetrieb solche Probleme macht.
@DanielSutil Bist du inzwischen weiter gekommen?

Auch ich versuche seit Tagen den Fehler zu finden und bin mir mittlerweile sicher, das es etwas mit einem Update auf Versionen ab 6.3.5.x zu tun hat.
So gut wie alle die das selbe Problem haben berichten das es erst nach einem Update der Shopware-Version aufgetreten ist.
Unser Hoster als auch Mail Provider haben keinen Schimmer woran es liegt. Die Testmails gehen raus, alle anderen Emails - sei es Bestellbestätigung, Kontakt, Newsletteranmeldung die über den Shop getätigt werden gehen nicht raus, sodass hier nicht mal ein „mail.sent“ Eintrag im Log zu finden ist.
Wir hatten sonst nie Probleme mit dem Erhalt der Mails - von jetzt auf Gleich gehen jedoch keine Emails raus.
Kann jemand ähnliches berichten?

Hast du das Template der Bestellbestätigung mal auf den „Auslieferungszustand“ zurückversetzt?
Bei mir war es ja sehr ähnlich so, ich war nur in Sachen Templatevariablen auf dem Holzweg, was bei mir zu diesem Verhalten geführt hat.