Jump to content

Problème module "formulaire de contact" de prestashop


Recommended Posts

Bonjour,

cela fait quelques semaines que je découvre la nouvelle version de prestashop 1.7.3

J'ai rajouté le modules de recaptcha pour les envois des mails et je me suis rendu comptes que je ne sais pas envois de mail, j'ai le message d'errur suivant

"An error occurred while sending the message, please try again."

Le site prestashop est installer provisoirement sur une adresse que j'ai chez one.com

Sur mon site j'ai aucun soucie pour l'envoi de mail avec la fonction mail()

Dans la configuration de prestashop, j'ai vus que par défaut c'est cette méthode qui est utilisé, bon vus que çà ne marche pas j'ai tenté de configuré les deux autres puisque sur one.com il donnent les infos mais çà change rien.

Suis-je passé à côté de quelque chose ?

Je précise que je ne sais pas envoyé de mail par "contactez-nous" mais pas non plus lorsque je fais un import, à la fin il devrait aussi envoyer un mail et la aussi erreur...

 

Merci d'avance,

Jean-Yves

Link to comment
Share on other sites

Bonsoir,

Bon, j'ai recherché le fameux contactform.php

Là dedans je retrouve bien les lignes qui gère le contrôle avant l'envoi d'un email (à partir de la ligne 401), d'ailleurs j'y retrouve bien le message d'erreur qui est afficher chez moi par contre je m'attends quand même à retrouvé quelque part le fameux mail()... ben non effet je ne vois pas comment et où il gère cela !

En parallèle de çà et comme j'avais déjà lu à gauche et droite et vous aussi qu'il serait mieux d'utiliser la version 1.6, je l'ai donc aussi installer en ligne pour faire mes tests...

Mauvaise surprise, exactement le même problème avec la version de prestshop 1.6.1.18 bizarre ! même message d'erreur !

Donc pour être plus clair dans les deux version (1.7.3 & 1.6.1.18) quand je vais dans l'onglet paramètres avancés/email on peut choisir la type de configuration d'envoi d'email et par défaut justement mail(), j'ai quand même testé avec l'option smtp qui est possible avec one.com sans résultat et peu important la version prestashop utilisé.

J'espère être suffisamment clair ;) et merci de vous pencher sur mon problème.

Jean-Yves

 

Link to comment
Share on other sites

Hi 

Many users use Cpanel without have access to WHM.

CPanel / WHM have a option to block smtp.

This feature prevents users from bypassing the mail server to send mail, a common practice used by spammers. 

If you have  access to WHM turns off this feature (SMTP Restrictions)(Picture Attached)

If you dont have access to WHM contact your hosting provider.

SKYPE: luisleitaoaudio

Screenshot_1.png

Link to comment
Share on other sites

Bonsoir,

Je vous remercie pour vos réponses.

Mon problèmes est résolu à moitié résolu...

Toujours sur prestashop 1.7.3

En fait dans "paramètre de la boutique" et "contact" je n'avais pas utilisé des emails que j'avais créé chez mon fourniseur one.com

Maintenant quand je vais sur "paramètres avancés" et "email" j'ai mis sur l'option "Utilisation de la fonction mail() de php"

En bas on peut tester la configuration par l'envoi d'un email, si je met l'un des email que j'ai chez mon fourniseur one.com c'est ok et je recois bien l'email mais aucune autre adresse email ne passe et j'ai le message suivant:

Erreur : veuillez vérifier votre configuration

Quand sur ma boutique j'essai d'envoyer un message par "nous contacter" j'ai le message d'erreur :

  • An error occurred while sending the message, please try again.

 

 

J'ai aussi testé cette modification sur la version 1.6.1.18 et j'ai exactement le même résultat.

Je reprécise que j'ai mis la boutique en test sur l'adresse d'un site que j'utilise et où je n'ai pas du souci avec mon formulaire php mail()

Merci,

Jean-Yves

 

 

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

Je reviens encore avec mon problème, j'avance doucement...

Bon le problème viens directement du module Formulaire de contact de prestashop (v4.1.0)

Bien que j'ai quelque connaissance en php, j'ai trouvé les deux fichiers (contactform.php et contactform.tpl).

Donc lors de l'envoi d'un message par le formulaire de contact :

Fichier : contactform.php

(ligne 392)

public function sendMessage()

la fonction s'arrête à la ligne 419 :

$this->context->controller->errors[] = $this->trans('Une erreur est survenue lors de l envoi du message, veuillez réessayer.', array(), 'Modules.Contactform.Shop');

Je ne comprend pas vraiment ce qui valide cette ligne car toute les condition au dessus son ok (selon moi ;))

Dans le fichier contactform.tpl

(ligne 31)

<form action="{$urls.pages.contact}" method="post" {if $contact.allow_file_upload}enctype="multipart/form-data"{/if}>

Ici ce que je ne comprend pas dans le form c'est : action="{$urls.pages.contact}"

Sur mon site j'utilise aussi la method="post" donc normalement çà devrait fonctionner.

Je ne sais pas vraiment où çà coince, si quelqu'un à une idée, ce sont les deux fichiers du thème de base que j'ai mis en pièces jointes.

 

Merci d'avance et bonne journée,

Jean-Yves

contactform.php

contactform.tpl

Link to comment
Share on other sites

  • jeanyves1976 changed the title to Problème module "formulaire de contact" de prestashop

Vous êtes PENIBLE !

Comment espérez vous que votre garagiste répare votre voiture? En la lui amenant!

Comment espérez vous que votre médecin vous prescrive une ordonnance  ? En allez le voir et en vous mettant tout nu!

 

Comment espérez vous que l'on répare votre site internet ? En lisant une boule de cristal !!!!!!

Ton url !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

Link to comment
Share on other sites

Bonjour doekia et à tous, (formule de politesse)

Content de voir que vous avez pris la peine de répondre à mon message ;) bon certe, il y a 15 jours vous m'auriez dit qu'avec l'url du site vous auriez pu m'aider ou pas, on n'aurait déjà gagné 15 jours. D'un autre côté je veux bien comprendre votre point de vue sur la version 1.7, il y a certainement plein de souci avec, j'avais déjà il 6 mois testé la 1.6 et maintenant en parallèle la 1.6.1.18, qui là pour moi la fonction import n'affiche pas du tout l'avancement du chargement, ben oui excusez-moi d'être "PENIBLE" mais non je ne veux pas démarrer une boutique en 1.6, déjà pour la question d'import au moins sur la 1.7. je vois quand c'est planté ! et de plus, même si 1.7 pas fiable à 100% , ni pour 2018, 2019 ou jamais au vus de tout les commentaires que j'ai lu ici, comme ce sont deux plate forme totalement différent, je ne peut pas me permettre, le jour ou prestashop dira fini 1.6, ce qui arrivera, d'avoir trop de souci pour transférer ma boutique vers 1.7 et d'avoir un souci avec le module formulaire contact et pas avoir d'avancé pendant 15 jours car je ne suis pas un "prestashop superstar"

Petite parenthèse sur ton premier message sur le point "La fin de ta question est plutôt incompréhensible. Passons."

Je suppose que tu as tester la version 1.7 et en l’occurrence la fonction import. Comme moi j'ai fait l'inverse, sur la 1.6.1.18 dans import il n'y a pas la possibilité de ce faire envoyer un email à la fin de l'import.

Bon allez doekia et tout le monde, trêve de blabla voici le lien où j'ai mis la boutique pour faire mes teste : URL site test

PS : Si vous avez besoin plus d'info, n'hésitez pas, si je répond pas de suite c'est que je travail le week-end en nuit ;)

Jean-Yves

 

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour à tous,

 

Allez comme je vois que doekia ne trouve pas, j'ai cherché par moi meme le pourquoi du comment, en regardant bien dans contactform.php, je me suis rendu compte que le problème venait des "token", si je supprimais cette vérification, l'envoi des deux emails se fait bien (client et boutique)

En réalité depuis le début je fait mes modifications dans modules/contactform/... et visuellement çà provoquait bien des modifications visuelle sur mon site.

En fouillant sur le net pour cette histoire de token, on parle bien d'une vérification token fait avant l'envoie par contactform.tpl

Mais aussi que ce fichier et normalement dans themes/modules/contactform/...

En réalité dans themes le fichier et différent de celui se trouvant directement dans le chemin modules.

D'ailleurs, le formulaire de contact n'affichait pas non plus le GRPD en bas.

Bref, une simple copie du fichier pourrais faire l'affaire mais la mise en page est "brut", du coup j'ai modifié l'ancien...

Maintenant çà marche nikel ;)

A+

Link to comment
Share on other sites

  • 3 months later...
On 27/06/2018 at 1:40 AM, jeanyves1976 said:

Bonjour à tous,

 

Allez comme je vois que doekia ne trouve pas, j'ai cherché par moi meme le pourquoi du comment, en regardant bien dans contactform.php, je me suis rendu compte que le problème venait des "token", si je supprimais cette vérification, l'envoi des deux emails se fait bien (client et boutique)

En réalité depuis le début je fait mes modifications dans modules/contactform/... et visuellement çà provoquait bien des modifications visuelle sur mon site.

En fouillant sur le net pour cette histoire de token, on parle bien d'une vérification token fait avant l'envoie par contactform.tpl

Mais aussi que ce fichier et normalement dans themes/modules/contactform/...

En réalité dans themes le fichier et différent de celui se trouvant directement dans le chemin modules.

D'ailleurs, le formulaire de contact n'affichait pas non plus le GRPD en bas.

Bref, une simple copie du fichier pourrais faire l'affaire mais la mise en page est "brut", du coup j'ai modifié l'ancien...

Maintenant çà marche nikel ;)

A+

Bonjour 

Je rencontre le même problème que vous sur mon site. Je sui novice en PHP, donc j'ai un peu de mal comprendre ce que vous avez changé dans  le fichier "contactform" pour que le problème disparaisse ...pourriez vous m'aider svp ?

Merci d'avance

bonne journée

FC

Link to comment
Share on other sites

Bonjour FC76,

Le plus simple c'est que je peux te donner mon fichier, suit le chemin suivant sur ton serveur :

./themes/classic/modules/contactform/views/templates/widget/

là tu as le fichier contactform.tpl, par sécurité change l'extension du tiens pour avoir contacrform.old par exemple et copie celui que tu aura chargé ici.

tu peux aussi regarder la différence qu'il y a entre les deux fichiers, c'est à la fin qu'il manque la ligne :

<input type="hidden" name="token" value="{$token}" />

qui devrait se trouver en dessous de :

<input type="text" name="url" value=""/>

Voilà :)

PS : si tu n'as pas de changement, pense à vider le cache dans le backoffice / paramètres avancés / Performance et là "vider le cache" en haut ;)

Jean-Yves

contactform.tpl

  • Like 3
Link to comment
Share on other sites

  • 1 month later...

Jean-Yves, merci, merci, merci, MERCI!!!!  🙏

j'ai galéré comme pas possible avec ce truc et j'étais tombé dans le même piège, je n'aurais jamais cru que le fichier tpl situé directement dans "module" et pas dans le thème puisse avoir une importance. Je ne sais pas pourquoi je ne suis pas tombé sur votre post lors de mes premières recherches sur ce problème, et j'ai donc galéré un moment avant de finalement tomber dessus. Là ça marche nickel. 

Juste une question: est-ce que ce bug a été signalé à Prestashop pour qu'ils intègrent la modification lors des prochaines versions? 

 

Link to comment
Share on other sites

Bonjour Jean Yves,

Je n'avais pas que vous m'aviez répondu, c'est seulement ce matin en voyant des mails passer suite aux derniers messages !

C'est super nickel !! J'ai fait la modif en suivant pas à pas vos instructions et ça marche !! Bravo !

Merci beaucoup avec du retard ;)

bonne journée

FC

Link to comment
Share on other sites

  • 5 months later...

Bonjour Jean-Yves,

 

Je galére également sur le site d'un de mes clients, peux-tu me dire si au départ tu avais ce genre d'erreur:

Whoops, looks like something went wrong.

1/1UndefinedMethodException in ContactController.php line 43:Attempted to call an undefined method named "getOrder" of class "ContactController".

  1. in ContactController.php line 43
  2. at ContactController->postProcess() in Controller.php line 194
  3. at ControllerCore->run() in Dispatcher.php line 379
  4. at DispatcherCore->dispatch() in index.php line 28

 

En te remerciant de ton retour, Yoan

Link to comment
Share on other sites

Le 13/05/2019 à 12:06 PM, Yoan Consultin Web a dit :

Bonjour Jean-Yves,

 

Je galére également sur le site d'un de mes clients, peux-tu me dire si au départ tu avais ce genre d'erreur:

Whoops, looks like something went wrong.

1/1UndefinedMethodException in ContactController.php line 43:Attempted to call an undefined method named "getOrder" of class "ContactController".

  1. in ContactController.php line 43
  2. at ContactController->postProcess() in Controller.php line 194
  3. at ControllerCore->run() in Dispatcher.php line 379
  4. at DispatcherCore->dispatch() in index.php line 28

 

En te remerciant de ton retour, Yoan

Bonjour,

Désolé, je ne pourrais pas vous aider, je n'avais ce genre de message d'erreur, mon problème venez dans la clef de confirmation qui n'étais pas correctement vérifié ...

Bonne journée,

Jean-Yves

Link to comment
Share on other sites

Je me permets d'up ce topic parce que je retrouve la même erreur sur un Presta 1.7.5.0

Les fichiers .tpl du module et du thème classic (que je n'ai pas modifié) sont identiques a ceci près qu'on a un <button> et pas un <input> pour submit le message dans le thème.

Les solutions proposées au dessus de remplacer les fichiers ne m'ont donc pas trop aidé...

Y'a-t-il un bug connu en 1.7.5.0 ? Mon module est en version 4.1.1, pas de mise à jour possible. Ça fonctionnait bien jusqu'a il y a quelques jours. J'ai un module RGPD que j'ai désactivé pensant qu'il interférait mais non, toujours ce message :

  • Une erreur s'est produite pendant l'envoi du message, veuillez essayer de nouveau

En espérant que quelqu'un puisse m'aider 😅

Link to comment
Share on other sites

  • 3 weeks later...
  • 6 months later...

Bonjour, 

 

moi aussi j'ai un soucis.

le test mail fonctionne.

l'envoi du mail depsui le formulaire de contact ne fait pas d'erreur mais aucun mail reçu.

la ligne token est bien présente et quand je la supprime alors j'ai une erreur.

Une idée ? je commence à sécher...

Link to comment
Share on other sites

Il y a 8 heures, abouzouzou a dit :

Bonjour, 

 

moi aussi j'ai un soucis.

le test mail fonctionne.

l'envoi du mail depsui le formulaire de contact ne fait pas d'erreur mais aucun mail reçu.

la ligne token est bien présente et quand je la supprime alors j'ai une erreur.

Une idée ? je commence à sécher...

Bonjour,

Tous les soucis dont j'ai dut faire face été lier au manque de connaissance dans le html5.0 qui est bien different de la version 3.0 dans ça mise en oeuvre. Il se peut que c'est dans la façon dont vous faites l'envoi qui n'est pas compatible la ou vous hébergé votre site. Note que si vous faites des test en local sur votre Pc, ça ne partira pas 😉.

Bonne recherche,

Jean-Yves 

Link to comment
Share on other sites

je ne vois pas du tout ce que html5 à a voir la dedans on est en train de parler de prestashop et de PHP. De plus je suis sur un site déployé chez un hébergeur, qui plus est j'ai déjà testé la fonction mail dans prestashop qui fonctionne bien. Vous êtes sur de répondre au bon message ? 

Merci !

Link to comment
Share on other sites

Bonsoir, après pas mal de recherches j'ai trouvé ce qui ne va pas sans comprendre modules/dans contactform.php

     $sendConfirmationEmail = Configuration::get(self::SEND_CONFIRMATION_EMAIL);
            $sendNotificationEmail = Configuration::get(self::SEND_NOTIFICATION_EMAIL);

ces 2 variables sont vides donc j'ai supprimé la vérification mais du coup je sais pas trop ce que cela vérifie

Link to comment
Share on other sites

  • 2 weeks later...

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...