Hallo, gibt es eine einfache Möglichkeit dem Kunden eine Kopie der Nachricht zu senden? Evtl. muss man im Backend nur einen Haken setzen und ich finde diesen nicht. Danke
Niemand eine Idee? Muss dazu wirklich programmiert werden?
Hi, im Standard geht nur eine eMail an die hinterlegte eMail-Adresse.
Gibts einen einfachen Workaround, wie ich das auf die schnelle im Code löse? Eine Email an den Shopbetreiber + Eine Email-Kopie an den Kunden. (Ich habe mich bis jetzt noch nie mit dem Kontaktformular beschäftigt!)
Hallo, nicht jedes Formular muss ja zwingend ein eMail-Feld haben. Man kann dieses aber einbauen und als Typ eMail auswählen. Das müsste dann ggf. einfach in der Datei engine/Shopware/Controllers/Frontend/Forms.php mit abfragen im Code unten. Der wird die eMail zusammengebaut.
Okay, nur die Frage wie ich bei der eMailer Methode einen zweiten Empfänger oder CC Empfänger eintrage. $mail->replyTo scheint es nicht zu sein. //eMail field available check foreach ($this-\>FormElements as $element) { if($element['typ'] == "email") { $post\_email = $this-\>Post[$element['id']]; $post\_email = trim($post\_email); } } if(!empty($post\_email)){ $mail-\>From = $post\_email; $mail-\>replyTo = $post\_email; }else{ $mail-\>From = Shopware()-\>Config()-\>Mail; }
so funktionierts… $mail-\>AddAddress($content["email"], ""); if(!empty($post\_email)){ $mail-\>AddAddress($post\_email, ""); }
Hallo, kann mir nur bitte wer genau sagen was durch was ersetzt werden müsste? Vielen Dank LG Marina
Bei mir funktioniert es auch nicht. Wie und wo genau werden die beiden Zeilen eingefügt? Wir haben auch folgendes erfolglos probiert: if (!empty($postEmail)) { $mail-\>From = $postEmail; //Neu Kopie an Kunde $mail-\>AddCC($postEmail, "");
so funktioniert es bei mir (Shopware 4.3.4) Ich habe folgende Zeilen abgeändert: 1. $mail->AddBCC($postEmail, „“); 2. Auskommentiert: //$mail->ClearAddresses(); 3. $mail->From = Shopware()->Config()->Mail; Wenn man 3. nicht ändert bekommt der Kunde von sich selber eine Email. public function commitForm() { $mail = Shopware()-\>System()-\>sMailer; $template = Shopware()-\>Config()-\>Templates-\>sSUPPORT; $mail-\>IsHTML($template['ishtml']); //eMail field available check foreach ($this-\>\_elements as $element) { if ($element['typ'] == "email") { $postEmail = $this-\>\_postData[$element['id']]; $postEmail = trim($postEmail); } } if (!empty($postEmail)) { //Geändert von $postmail zu Shop Email $mail-\>From = Shopware()-\>Config()-\>Mail; //Neu Kopie an Kunde $mail-\>AddBCC($postEmail, ""); } else { $mail-\>From = Shopware()-\>Config()-\>Mail; } $content = $this-\>View()-\>sSupport; $mail-\>FromName = $mail-\>From; $mail-\>Subject = $content["email\_subject"]; $mail-\>Body = $content["email\_template"]; foreach ($this-\>\_postData as $key =\> $value) { if ($this-\>\_elements[$key]['typ'] == "text2") { $names = explode(";", $this-\>\_elements[$key]['name']); $mail-\>Body = str\_replace("{sVars." . $names[0] . "}", $value[0], $mail-\>Body); $mail-\>Body = str\_replace("{sVars." . $names[1] . "}", $value[1], $mail-\>Body); } else { $mail-\>Body = str\_replace("{sVars." . $this-\>\_elements[$key]['name'] . "}", $value, $mail-\>Body); } } $mail-\>Body = str\_replace("{sIP}", $\_SERVER['REMOTE\_ADDR'], $mail-\>Body); $mail-\>Body = str\_replace("{sDateTime}", date("d.m.Y h:i:s"), $mail-\>Body); $mail-\>Body = str\_replace('{$sShopname}', Shopware()-\>Config()-\>shopName, $mail-\>Body); $mail-\>Body = strip\_tags($mail-\>Body); //Auskommentiert da sonst keine CC BCC Mail //$mail-\>ClearAddresses(); Unterdrückt alles $mail-\>AddAddress($content["email"], ""); $mail = Enlight()-\>Events()-\>filter('Shopware\_Controllers\_Frontend\_Forms\_commitForm\_Mail', $mail, array('subject' =\> $this)); if (!$mail-\>Send()) { throw new Enlight\_Exception("Could not send mail"); } }
Danke für den Code, klappt wunderbar.
Ich habe nur Angst wegen der Update-Unsicherheit. Gibt es hierzu eine Möglichkeit das Ganze sicher zu gestalten?
Habe von meinem Kunden den Auftrag erhalten, dass eine Kopie des Kontaktformular-Inhaltes an den Kunden rausgehen soll.
Habe es durch Einfügen der Zeile
$mail->addBcc($postEmail);
in der forms.php Zeile 310 gelöst. (Version 5.1.4)
Der gesamte Absatz sieht nun so aus:
$mail->setFrom(Shopware()->Config()->Mail);
$mail->clearRecipients();
$mail->addTo($content["email"]);
$mail->addBcc($postEmail);
$mail->setBodyText($mailBody);
$mail->setSubject($content["email_subject"]);
(Habe es hier an den alten Beitrag angehängt, da dieser immer wieder auch in aktuellen Beiträgen verlinkt wird)