planetediscount Posted May 20, 2021 Share Posted May 20, 2021 Bonjour, Je suis sur Prestashop 1.6.1.4 avec le multiboutique. Lorsqu'un visiteur ou client envoi un message depuis le formulaire de contact il reçoit bien le message de retour et je reçois bien le message sur le mail de la boutique. Le champ from est bien l'email de la boutique mais le champs reply_to est aussi celui de la boutique au lieu pour ma logique d'être celui du contact qui à envoyé le message ($contact->email il me semble). Lorsque l'on clique sur répondre le champ email est vide sur Thunderbird mais dans la source du mail il y a bien replyto à l'email de la boutique, Si je récupère les email sur notre système de ticketing le mail de réponse est celui de la boutique et cela oblige à modifier à chaque mail reçu. Je souhaite donc arriver à juste avoir le mail du contact du message dans le formulaire pour le champ replyto. Dans le fichier ContactController.php j'ai cru qu'il fallait modifier le $from (de la 3eme lignes) par $contact->email mais cela ne change rien. if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); Merci pour votre aide. Link to comment Share on other sites More sharing options...
Eolia Posted May 20, 2021 Share Posted May 20, 2021 C'est pourtant bien le dernier paramètre de la fonction Send() public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null) { Prestashop verifie sa validité sinon il utilise le paramètre from if (!($reply_to && Validate::isEmail($reply_to))) { $reply_to = $from; } if (isset($reply_to) && $reply_to) { $message->setReplyTo($reply_to); } 1 Link to comment Share on other sites More sharing options...
planetediscount Posted May 20, 2021 Author Share Posted May 20, 2021 Merci pour ton retour Eolia, donc en modifiant le null, $from de la fin de la troisième ligne par $contact->email, $contact->email - bcc devrait être l'email du contact et replyto l'email du contact ? Si ça ne fonctionne pas cela peut être du à quoi ? j'ai vérifié et je n'ai pas d'override Mail.php, Mailsend.php et ContactController.php Link to comment Share on other sites More sharing options...
planetediscount Posted May 21, 2021 Author Share Posted May 21, 2021 17 hours ago, Eolia said: C'est pourtant bien le dernier paramètre de la fonction Send() public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null) { Prestashop verifie sa validité sinon il utilise le paramètre from if (!($reply_to && Validate::isEmail($reply_to))) { $reply_to = $from; } if (isset($reply_to) && $reply_to) { $message->setReplyTo($reply_to); } Hello Eolia, Je pense avoir trouvé mon problème, dans classe/Mail.php j'ai /* Send mail */ $message->setReplyTo($from); $from = Configuration::get('PS_SHOP_EMAIL'); $send = $swift->send($message, $to_list, new Swift_Address($from, $from_name)); $swift->disconnect(); ShopUrl::resetMainDomainCache(); Je ne pense pas normal le bout de code - $message->setReplyTo($from); - Je n'arrive pas à voir si il y est de base ou si il y a eu une modification. Link to comment Share on other sites More sharing options...
Eolia Posted May 21, 2021 Share Posted May 21, 2021 Effectivement, votre code a été bidouillé. Le code original est /* Send mail */ $send = $swift->send($message, $to_list, new Swift_Address($from, $from_name)); $swift->disconnect(); https://www.prestashop.com/fr/file/prestashop1.6.1.4.zip-0/download?token=MDy6_eDO https://www.prestashop.com/fr/versions?version=1.6&sort_by=field_version_number_value&sort_order=DESC 1 Link to comment Share on other sites More sharing options...
planetediscount Posted May 21, 2021 Author Share Posted May 21, 2021 1 hour ago, Eolia said: Effectivement, votre code a été bidouillé. Le code original est /* Send mail */ $send = $swift->send($message, $to_list, new Swift_Address($from, $from_name)); $swift->disconnect(); https://www.prestashop.com/fr/file/prestashop1.6.1.4.zip-0/download?token=MDy6_eDO https://www.prestashop.com/fr/versions?version=1.6&sort_by=field_version_number_value&sort_order=DESC Si j'enlève le - $from = Configuration::get('PS_SHOP_EMAIL'); - les emails envoyés du formulaire auront le mail du contact en from ce qui bloquera l'envoi par mailjet and co. Je pense il faut que je garde ce dernier pour bien avoir le from avec le mail de la boutique. Je viens de tester en enlevant juste - $message->setReplyTo($from); - et tout à l'air ok, from est le mail de la boutique et replyto le mail du contact du formulaire. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now