Jump to content

Formulaire Personnalisé : E-Mail Au Client Envoyé Mais Pas Reçu E-Mail Admin


Recommended Posts

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 by instean (see edit history)
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...