Mail Controller

Halllo,
mein System verschickt nur noch Bestellbestätigungs-Testmails, aber keine realen Bestellbestätigungsmails mehr. Beabsichtige, den Mailer Code in Shopware6 zu debuggen. Nutzt Shopware6 dafür eine eigene Mailklasse oder die von Symfony? Habe nach MailController.php und MailerController.php gesucht, bin aber nicht fündig geworden. Weiß jemand, in welcher Datei die Mailfunktionalität in Shopware6 implementiert ist?

vendor/shopware/core/Content/Mail/Service/MailSender.php verwendet am Ende den Symfony-Mailer (vendor/symfony/mailer/Mailer.php)

Zeigt denn der Log einen Fehler an? Wurden Mailtemplates verändert? Gab ja einen Thread, das die Vorschau geht, aber die Mails unter Echtbedingungen nicht.

Danke für die Log Info. Manchmal kommt man auf das naheliegendste nicht zur Errorfixierung. Die Log zeigt folgendes auf:

[2024-05-24 09:15:08] app.ERROR: Could not render Mail-Template with error message: Failed rendering string template using Twig: Variable "shippingPolicyLink" does not exist in "0c0fe6d693eaaedfb69710a90b7316a2" at line 168

Das Mail-Template wurde nicht verändert, wird zumindest behauptet, verfizieren lässt sich das aber nicht, und der Testversand funktioniert ja. Was ich mit dieser Errormeldung anfangen soll, ist mir vorerst unklar. Weiß jemand, in welchem E Mail Template dieser Link zu den Versandrichtlinien überhaupt hinterlegt wird?

0c0fe6d693eaaedfb69710a90b7316a2

ist wohl wieder der PK einer Tabelle. Welcher den…? Zeile 168 verweist auf eine TWIG Datei. Leider wird nirgends erwähnt, welche das ist. Nur der gesamte HTML Code wird eingeblendet!

Hier ein Auszug aus dem Template:

Wer immer dieses Template verfasst hat, die rot umrandete shippingPlicyLink verhindert wohl den Mailversand. Wäre die Entfernung dieser TWIG Variablen und es hart zu codieren ein Lösungsansatz?
Woher diese Variablen letztlich kommen, würde mich brennend interessieren…

Also shippingPolicyLink rausnehmen sollte den Fehler zumindest mal beheben, können natürlich noch andere drin sein. Wird das ggf. weiter oben definiert? Ist imho keine Standardvariable. Der Text davor ist auch nicht „original“.

Jetzt wird gar keine Mail mehr verschickt. Generell nicht. Bei manchen Templates wird eine Erfolgsmeldung bzgl. des Testversandes ausgegeben, bei manchen eine Errormeldung. Die Log zeigt aber keinerlei Fehler, im Gegenteil, ich bekomme folgende Message:

[2024-05-27 08:31:38] business_events.INFO: mail.before.send {"source":"core","environment":"dev","additionalData":{"data":{"contentHtml":"<!doctype html>\r\n<html

[2024-05-27 08:31:38] business_events.INFO: mail.after.create.message {"source":"core","environment":"dev","additionalData":{"data":{"contentHtml":"<!doctype html>\r\n

Wenn ich die SMTP Zugangsdaten über das Backend konfiguriere, wie müssen dann die Angaben in der .env Datei lauten
So

MAILER_URL=smtp://localhost:25?encryption=&auth_mode=

oder So:

MAILER_URL=null://localhost

oder brauch ich dann gar keine MAILER_URL konfigurieren?

Laut meiner Konfig wird MAILER_URL nicht mehr verwendet

With Shopware 6.4.17.0 the MAILER_DSN variable will be used in this template instead of MAILER_URL

es müsste also MAILER_DSN sein (Aufbau: MAILER_DSN=smtp://user:pass@smtp.example.com:port). Soweit ich es aber verstanden habe, wird das eh nicht verwendet, wenn im Admin die Werte in den Einstellungen (Mailer) gesetzt sind.

Ich benutze Shopware 6.3.X und habe das Problem, dass überhaupt keine Mails mehr versendet werden. Vorher ging das! Wenn ich im Backend die SMTP Versanddaten mit den korrekten Verbindungsdaten eingepflegt habe, ist es dann egal, was ich in der .env hinterlege, oder muss ich dabei was beachten?
In der Doku sind drei Möglichkeiten angegeben. Welche aber hat Priorität, oder besser gefragt: Überschreiben die Angaben in der .env die Backend Angaben oder umgekehrt?

Gemäß Deines obigen Posts ist es egal, was in der .env steht, wenn es im Backend korrekt hinterlegt ist, richtig? Falls dem so sein sollte, liegt es am SMTP Server, nicht an Shopware6. Warum aber zeigt die LOG nicht auf, dass der Versand nicht erfolgt?

Ja, wobei ich grad kein 6.3 zum testen hab, aber die Einstellung in der .env sollte nur bei der Wahl " Umgebungs-Konfiguration benutzen" berücksichtigt werden. Wurde noch was geändert bzw. wie lange geht es jetzt nicht mehr? Erst kürzlich?

Die Credentials des SMTP Servers wurden abgeändert, ohne mich zu informieren. Dass Shopware6 das nicht loggt und sogar einzelne Test Mails als erfolgreich versendet deklarierte, steht auf einem anderen Blatt.
P.S.: Manchmal wünsche ich mir das Easy Going von WooCommerce zurück…
Für jemanden, der vor denselben Problem steht:
Die Angaben in der .env Datei werden de facto nicht beachtet, wenn im Backend einer der ersten beiden in der Doku hinterlegten Möglichkeiten angegeben wurden. Damit schließe ich diesen Thread als gelöst!

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.