"Reply-To" Adresse des Kunden für Kontaktformular(e)

Moin Zusammen,

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“ :frowning:

Hat da wer eine Idee?

NACHTRAG: Ich bin noch auf 6.3.5.4

Besten Dank,
devnulroot

1 „Gefällt mir“

Warum ist das in nicht im Standard, da ist doch wichtig.

1 „Gefällt mir“

Das sollte reichen:

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]);
  }
  ...
}

Beste Grüße,
devnullroot

2 „Gefällt mir“

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?

Ist das nicht als Bug im Bugtracker zu erfassen?

Viele Grüße

Hallo zusammen,

ich bin auch ein wenig sprachlos, dass so eine Selbstverständlichkeit noch fehlt … ein Ticket gibt es bereits: Shopware Issuetracker

Lasst uns das hochvoten …

Liebe Grüße aus Aschaffenburg
Carsten Sann
Der Essenzenladen

Hallo @devnullroot ,

vielen Dank für deinen Ansatz, damit gelingt es mir, via Plugin, für alle E-Mails die „Reply-To“-Adresse auf eine bestimmte E-Mail-Adresse zu setzen.

Kann mir jemand einen Hinweis geben, wie man

  1. ReplyTo nur bei Kontaktanfragen und Bestellbestätigungen setzt?
  2. An die E-Mail-Adresse des Kunden kommt? Bzw. an die E-Mail-Adresse, die im Kontaktformular angegeben wurde?

Viele Grüße

Moin @Laudenz,

2 steht schon in meiner Antwort oben (ok, vielleicht etwas verkürzt :crazy_face:) 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.

Beste Grüße,
devnullroot

1 „Gefällt mir“

Hallo @devnullroot ,

vielen Dank für die schnelle Rückmeldung.

$event->getTemplateData()['contactFormData']['email']

funktioniert super!

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.

Ich prüfe jetzt einfach, ob

$event->getTemplateData()[‚contactFormData‘][‚email‘]

einen Wert hat. Falls das true ist, setze ich ReplyTo. So habe ich es gelöst, damit ReplyTo nur beim Kontaktformular gesetzt wird.

Viele Grüße

Leider doch noch nicht so möglich, wie von vielen gewünscht. Anpassungen im Bereich von reply-to werden vermutlich mit der 6.5. erscheinen.

Hallo zusammen,

mittlerweile ist es möglich, dass innerhalb des Flows zum Kontaktformular als Absender „Anfragesteller“ ausgewählt werden kann.

Viele Grüße

2 „Gefällt mir“

Hallo,

für das Bestellformular wurde das leider nicht umgesetzt, oder?
Hier wäre ein zusätzlicher replay-to Header ebenfalls sehr sinnvoll.

Grüße