ich würde gerne die E-Mail-Adresse des Kunden als „Reply-To“-Adresse in die versendeten Kontaktmails eintragen.
Ich habe bereits einen eigenen FormController nebst eigener FormRoute (mit begleitendem CMS-Element) und FormValidationFactory implementiert, die unterschiedliche Kontaktformulare mit unterschiedlichen Feldern ermöglichen. Die Versendung geschieht weiterhin über das standard Kontaktformular. Das läuft alles wie gewünscht.
Allerdings finde ich keine Möglichkeit die „Reply-To“ Adresse „einzuschleusen“
class FormSubscriber implements EventSubscriberInterface
{
...
public static function getSubscribedEvents(): array
{
return [
MailBeforeValidateEvent::class => 'onMailBeforeValidateEvent',
];
}
public function onMailBeforeValidateEvent(MailBeforeValidateEvent $event)
{
// Hier die Mails rausfiltern, für die das ReplyTo gesetzt werden soll
...
// Aus $event->getTemplateData() die [ADRESSE_DES_KUNDEN] extrahieren
...
$event->addData('replyTo', [ADRESSE_DES_KUNDEN]);
}
...
}
Das gleiche Verhalten passiert bei dem Kontaktformular und bei den Bestellbestätigungen. Die Reply-To Adresse ist nicht der Kunde, sondern die Shop-Absenderadresse. Erwarten würde man doch, dass die Reply-To auf die Kunden-Email gesetzt wird?
2 steht schon in meiner Antwort oben (ok, vielleicht etwas verkürzt ) Die Mail-Adresse steht im MailBeforeValidateEvent: $event->getTemplateData()['contactFormData']['email']
Zu 1 kann ich dir spontan leider nichts sagen, ich würde aber mal das Event durchforsten, ob da irgendwas zu finden ist und prüfen, ob Bestellbestätigungen überhaupt über diesen Event laufen.
Bei der Bestellbestätigung ReplyTo auf die Kunden E-Mail-Adresse zu setzen ergibt natürlich kein Sinn, sonst würde der Kunde sich selbst antworten, wenn er Rückfragen zur Bestellung hat.
Hatte da einen Denkfehler.