Sébastien Boureau Posted June 13, 2018 Share Posted June 13, 2018 Bonjour à toute la communauté, ma cliente m'a fait part d'un problème que je n'arrive pas à résoudre. En tant qu'admins, elle et moi nous connectons au BO sans problème. En revanche, sur le front, lorsque j'essaie de me connecter avec deux de mes adresses mail test enregistrées depuis longtemps, l'authentification est un échec. Si j'essaie de créer un nouveau mot de passe, je reçois bien la demande avec le lien sur lequel cliquer pour confirmation. Je clique et suis redirigé vers une page m'annonçant que le mdp a été renouvelé et envoyé à cette même adresse... mais n'arrive jamais! Une idée d'où peut provenir le problème ? D'avance merci. Link to comment Share on other sites More sharing options...
Eolia Posted June 13, 2018 Share Posted June 13, 2018 Déjà, là il y a un problème Citation En revanche, sur le front, lorsque j'essaie de me connecter avec deux de mes adresses mail test enregistrées depuis longtemps, l'authentification est un échec. Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 13, 2018 Author Share Posted June 13, 2018 Oui, de quoi cela peut-il provenir ? Link to comment Share on other sites More sharing options...
Eolia Posted June 13, 2018 Share Posted June 13, 2018 Je ne connais pas l'histoire votre shop (migrations, modules, patchs, overrides) Il faut suivre le code et voir où ça bloque. Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 13, 2018 Author Share Posted June 13, 2018 En tout cas: - Au niveau des Logs mails: j'ai bien la confirmation de l'envoi des deux mails (Demande de nouveau mdp et Envoi d'un nouveau mdp) - Rien dans les spams. - Pour l'hébergeur (OVH): il était momentanément indisponible mais maintenant qu'il semble de nouveau fonctionnel je ne sais pas où chercher un message d'erreur chez eux! C'est quand même dingue que le premier mail passe et pas le second. Y-a-t-il un endroit dans les tpl où je peux fouiller pour voir si la syntaxe est bonne ? D'avance merci. Link to comment Share on other sites More sharing options...
Eolia Posted June 13, 2018 Share Posted June 13, 2018 tpl ??? Non pas de tpl sur ce coup là. Attention: log mail Presta ne veut pas dire "envoyé" mais que la fonction send() de la classe mail a répondu ok. Chez OVH il y a un suivi des logs mails. Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 13, 2018 Author Share Posted June 13, 2018 Ok, je pense que je vais les contacter Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 14, 2018 Author Share Posted June 14, 2018 @Eolia: j'ai eu un technicien d'OVH au téléphone. On a fait quelques modifications dont une majeure, la mise à jour du PHP en 5.6, dans le répertoire mail>fr le fichier index.php était absent et on y a copié celui du dossier mail>en mais tout ceci n'a rien changé. Au niveau des serveurs mails, il constate bien le départ du premier mail mais pas du second ce qui lui fait penser que le problème viendrait du thème et plus précisément du fichier password.tpl Je vous copie/colle le code qui me semble correspondre à l'envoi du second mail des fois qu'une erreur vous apparaîtrait, je suis trop novice: {if isset($confirmation) && $confirmation == 1} <p class="alert alert-success">{l s='Your password has been successfully reset and a confirmation has been sent to your email address:'} {if isset($customer_email)}{$customer_email|escape:'html':'UTF-8'|stripslashes}{/if}</p> {elseif isset($confirmation) && $confirmation == 2} <p class="alert alert-success">{l s='A confirmation email has been sent to your address:'} {if isset($customer_email)}{$customer_email|escape:'html':'UTF-8'|stripslashes}{/if}</p> {else} <p>{l s='Please enter the email address you used to register. We will then send you a new password. '}</p> <form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="std" id="form_forgotpassword"> <fieldset> <div class="form-group"> <label for="email">{l s='Email address'}</label> <input class="form-control" type="email" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email|escape:'html':'UTF-8'|stripslashes}{/if}" /> </div> <p class="submit"> <button type="submit" class="btn btn-default button button-medium"><span>{l s='Retrieve Password'}<i class="icon-chevron-right right"></i></span></button> </p> </fieldset> </form> {/if} D'avance merci Link to comment Share on other sites More sharing options...
Eolia Posted June 14, 2018 Share Posted June 14, 2018 Rien à voir avec le tpl (celui-ci n'envoie aucun mail) C'est dans le contrôleur associé que cela se passe: } elseif (($token = Tools::getValue('token')) && ($id_customer = (int)Tools::getValue('id_customer'))) { $email = Db::getInstance()->getValue('SELECT `email` FROM '._DB_PREFIX_.'customer c WHERE c.`secure_key` = \''.pSQL($token).'\' AND c.id_customer = '.(int)$id_customer); if ($email) { $customer = new Customer(); $customer->getByemail($email); if (!Validate::isLoadedObject($customer)) { $this->errors[] = Tools::displayError('Customer account not found'); } elseif (!$customer->active) { $this->errors[] = Tools::displayError('You cannot regenerate the password for this account.'); } elseif ((strtotime($customer->last_passwd_gen.'+'.(int)Configuration::get('PS_PASSWD_TIME_FRONT').' minutes') - time()) > 0) { Tools::redirect('index.php?controller=authentication&error_regen_pwd'); } else { $customer->passwd = Tools::encrypt($password = Tools::passwdGen(MIN_PASSWD_LENGTH, 'RANDOM')); $customer->last_passwd_gen = date('Y-m-d H:i:s', time()); if ($customer->update()) { Hook::exec('actionPasswordRenew', array('customer' => $customer, 'password' => $password)); $mail_params = array( '{email}' => $customer->email, '{lastname}' => $customer->lastname, '{firstname}' => $customer->firstname, '{passwd}' => $password ); if (Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname)) { $this->context->smarty->assign(array('confirmation' => 1, 'customer_email' => $customer->email)); } else { $this->errors[] = Tools::displayError('An error occurred while sending the email.'); } } else { $this->errors[] = Tools::displayError('An error occurred with your account, which prevents us from sending you a new password. Please report this issue using the contact form.'); } } } else { $this->errors[] = Tools::displayError('We cannot regenerate your password with the data you\'ve submitted.'); } } Si vous avez le message disant que le mot de passe a été renvoyé, c'est que cette ligne là est passée: if (Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname)) { $this->context->smarty->assign(array('confirmation' => 1, 'customer_email' => $customer->email)); } Donc le mail a été envoyé pour Prestashop, curieux qu'ovh ne le voit pas... Le template de ce mail existe bien sur votre site ? /mails/fr/password.html et /mails/fr/password.txt Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 14, 2018 Author Share Posted June 14, 2018 / mails/fr/password.html et /mails/fr/password.txt existent bien. Pour le reste de votre message je ne sais pas ce que je dois faire. Est-ce que je dois comparer ces lignes avec celles d'un fichier sur mon ftp ? Si oui, où se trouve ce contrôleur associé svp ? PS: je joins une capture de mes logs mails dans le BO de PS. La dernière ligne signifie-t-elle que la ligne dont vous parlez ci-dessus est passée ? Link to comment Share on other sites More sharing options...
Eolia Posted June 14, 2018 Share Posted June 14, 2018 le controleur se trouve dans /controllers/front/ A priori, oui, le message est bien parti de Prestashop (pas forcément d'ovh) Par contre vous avez fait vite pour envoyer et recevoir le message et cliquer en 10 secondes^^ Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 14, 2018 Author Share Posted June 14, 2018 2 hours ago, Eolia said: Par contre vous avez fait vite pour envoyer et recevoir le message et cliquer en 10 secondes^^ Et encore je n'étais pas en forme Ok donc j'ai comparé mon contrôleur au vôtre et il n'y a aucune différence, il date de l'installation du PS en 2016. Après petite enquête des logs mails, il semblerait qu'une cliente ait demandé son renouvellement de mot de passe le 30 mai et quelques minutes après, a passé une commande. On peut donc en déduire que cela fonctionnait à ce moment là. Entre temps, les seules modifications que j'ai faites sur ce Presta son l'installation de votre module RGPD ainsi que la mise à jour de quelques modules du genre et de mémoire: chèques, alertes e-mails, bloc CMS, bloc contact, bloc info clients et d'autres... des modules fournis par PS il me semble. Link to comment Share on other sites More sharing options...
Eolia Posted June 14, 2018 Share Posted June 14, 2018 Vous pouvez m'envoyer l'url de votre shop que je teste ? Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 14, 2018 Author Share Posted June 14, 2018 alortujou.com Link to comment Share on other sites More sharing options...
Eolia Posted June 14, 2018 Share Posted June 14, 2018 Ok test effectué, effectivement le mail ne part pas. Par contre vos mails sont envoyés depuis une adresse en wanadoo.fr ce qui n'est pas top question antispam. Pouvez-vous me copier votre template mail (les 2 html & txt) ici : http://eolia.o2switch.net/pastebin/ ? Puis envoyez-moi le lien généré Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 14, 2018 Author Share Posted June 14, 2018 Merci du retour Eolia. J'ai donc enlevé le terme mot de passe dans le template et ai essayé une nouvelle demande mais le second mail n'arrive toujours pas. C'est à n'y rien comprendre :/ Et si je modifie le mail wanadoo.fr ? Peut-être qu'en leur créant une adresse comme [email protected] sur OVH cela ne bloquerait plus! Je vais essayer. en tout cas merci pour les idées Link to comment Share on other sites More sharing options...
Eolia Posted June 14, 2018 Share Posted June 14, 2018 Oui ca devrait aider, c'est sur mais ce qui est certain c'est que le mail "disparaît" entre Prestashop et le serveur mail d'Ovh donc seuls eux peuvent nous répondre... Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 15, 2018 Author Share Posted June 15, 2018 (edited) Je vais les recontacter. Pour info, j'ai créé l'adresse [email protected] que j'ai ajoutée dans le bloc "Alertes e-mails". Mais lors d'un test de demande de nouveau mot de passe, toujours pareil: 1er mail reçu, 2d jamais! Edit: je m'aperçois que dans le module "Alertes e-mail" ce n'est pas le mail utilisé pour recevoir le nouveau mot de passe! Edit 2: en fait je m'aperçois que je ne sais pas où modifier le mail qui envoie les notifications de mdp! Edited June 15, 2018 by Sébastien Boureau (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted June 15, 2018 Share Posted June 15, 2018 rien à voir avec le bloc alertes email, c'est dans les coordonnées de la boutique qu'il faut le mettre^^ Préférences -> coordonnées & magasins, en bas de page Link to comment Share on other sites More sharing options...
Sébastien Boureau Posted June 15, 2018 Author Share Posted June 15, 2018 Rha punaise c'est bon ça fonctionne ! Maudite adresse mail en wanadoo.fr Bon, Eolia, comme toujours, vous êtes présent et actif, merci pour votre aide et vos pistes 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