instean Posted December 2, 2015 Share Posted December 2, 2015 (edited) Bonjour, Je précise tout d'abord mon souci : J'ai créé un nouveau formulaire de contact personnalisé (donc nouveau fichier .tpl, .php et le controller).Tout marche bien, SAUF qu'au moment de la confirmation du formulaire le mail s'envoi mais je ne le reçois pas dans ma boite mail (GMAIL). Le client reçoit bien l'accusé de sa demande, mais pas moi (admin). Je précise que j'ai également modifié le formulaire de contact de base en suivant ce tutoriel : http://www.lije-creative.com/modifier-formulaire-contact-prestashop-1-6-x-x/ Le formulaire de contact de base marche très bien, même modifié, et l'envoi de mail également. J'ai donc suivi le même principe que le tutoriel ci-dessus pour créer un nouveau formulaire de contact personnalisé. L'envoi de mail à pourtant l'air de fonctionner puisque je n'ai aucune erreur et que le client reçoit le mail. Le problème c'est que JE ne sais pas si quelqu'un m'a contacté vu que je ne reçoit rien !!!!! Je précise également que rien n'es mis dans mes spams. Le code du controller pour le mail if (empty($contact->email)) { Mail::Send($this->context->language->id, 'pro_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); } else { if (!Mail::Send($this->context->language->id, 'pro', 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, 'pro_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.'); } } Pour ce qui est de la configuration mail, j'ai laissé par défaut celui de prestashop (je n'ai pas configuré mon STMP). Si quelqu'un à une idée ou es déjà passé par là, merci de répondre. En vous remerciant par avance ! Cordialement, Simon BERTRAND. Edited December 2, 2015 by instean (see edit history) Link to comment Share on other sites More sharing options...
instean Posted December 2, 2015 Author Share Posted December 2, 2015 (edited) Je viens également de constater dans les logs que seul l'e-mail client s'envoi : Edited December 2, 2015 by instean (see edit history) Link to comment Share on other sites More sharing options...
instean Posted December 3, 2015 Author Share Posted December 3, 2015 Bonjour tout le monde, J'ai trouvé d'ou viens le problème mais ne sais pas comment le régler !En fait, dans mon controller, la fonction de test if(empty($contact->mail)) renvoi vrai. Donc l'e-mail est envoyé seulement au contact client. Voici mon code qui bug : if (empty($contact->email)) { Mail::Send($this->context->language->id, 'pro_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message 1 has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message 1 has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); } else { if (!Mail::Send($this->context->language->id, 'pro', Mail::l('Message 2 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, 'pro_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message 2 has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message 2 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.'); } } Et voici le code que j'ai modifier pour que ça marche : if (!Mail::Send($this->context->language->id, 'pro', Mail::l('Message 2 from contact form').' [no_sync]', $var_list, '[email protected]', $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'pro_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message 2 has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message 2 has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, '[email protected]')) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } En effet, je supprime ma vérification de ma variable $contact->mail et j'envoi directement mon mail avec l'adresse mail en dur dans le code. Cela marche mais n'est pas très propre. Je voudrais donc savoir si quelqu'un a une idée du pourquoi cette variable $contact->mail est vide ???? Alors que mon adresse mail est bien renseigné dans mon backoffice prestashop !!! (La preuve c'est que mon formulaire de contact normal marche très bien et cette variable n'es pas vide) 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