Jump to content

Erreur : les paramètres du mail sont corrompus


mudplanet

Recommended Posts

Bonjour à tous,

J'ai vu plusieurs post au sujet de cette erreur, mais je n'ai pas vu la solution clairement expliquée. Il semble qu'il s'agisse d'un problème de caractère UTF-8, mais de grâce ne dites pas des trucs du genre "il faut paramétrer votre éditeur pour qu'il enregistre en UTF-8". Cela ne REGLE pas le problème, car le problème n'est pas, actuellement, dans mon éditeur, mais dans mon site !

Alors s'il s'agit effectivement de fichiers qui doivent être sauvés en UTF-8 (je n'ai pas souvenir d'avoir édité un quelconque fichier, pourant ...), la solution serait d'expliquer comment CORRIGER cet état de fait, non comment l'éviter.


Donc, en gros, je modifie un produit, et quand je sauve, hop : message. Frustrant. Je crois que j'ai testé le fait d'être prévenu lorsqu'un produit revient en stock, donc il doit y avoir un envoi automatique de mail là-dessous. Mais ça ne me dit pas où est le problème, ni comment le corriger.

Si quelqu'un a la bonté de donner une explication claire et complète (ou un lien vers un endroit où la soluce est explicitée), je l'en remercie par avance.

Patrice

Link to comment
Share on other sites

Après quelques investigations, j'ai ajouté dans le fichier classes/mail.php quelques traces pour vérifier ce qui génère le message en question.

Il s'avère qu'en fait, il n'est pas question ici de caractères UTF-8 comme je l'avais dit dans on précédent post (induit en erreur par un autre post qui ne devait finalement pas avoir grand chose à voir).

Dans le fichier mail.php, la fonction send() commence par un certain nombre de validations. Celle qui ne fonctionne pas est la suivante : le paramètre $to est vide ... Évidemment, envoyer un mail sans indiquer le destinataire, c'est pas bien.

Dans mon cas, $toName est vide aussi.

Le seul truc notable que j'ai fait récemment, c'est de cliquer sur le bouton "prévenez-moi lorsque ce produit sera en stock" (libellé indiqué de mémoire) alors que j'étais connecté comme client. Il est possible aussi que le client en question ai été supprimé depuis ...

Après avoir vérifié que ma table des client est vide (je suis sur une base test ...), je vois qu'il traine un enregistrement dans la table mailalert_customer_oos ... et en supprimant cet enregistrement, évidement , le bug disparaît.

Soit il y a un bug sur la suppression des enregistrements dans cette table, soit il y a eu une erreur sur la suppression du client concerné ...

Link to comment
Share on other sites

  • 7 months later...

le problème vient simplement du fait qu'un client à demander à recevoir un mail lorsque le produit sera de nouveau en stock. seulement, entre temps, vous avez du virer ou modifier des paramètres.
le plus simple est de refaire la fiche produit au propre pour ne plus revoir l'erreur.

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Je viens d'avoir le problème, en réalité ce problème viens bien du module mailalert car justement j'ai depuis peu installé ce module, donc en rencontrant le message d'erreur "les paramètres du mail sont corrompus" en modifiant la quantité d'un produit, sachant pertinemment que justement des mail devais être envoyé a des clients pour dire que j'ai été réapprovisionné, je me suis donc penché sur ce module.

Le problème de ce module ( mailalert ) , c'est qu'il ne fait aucune vérification à savoir si le mail entré par le client est bien valide AVANT d'entrer ce mail dans la base de donnée... donc quelqu'un qui appui sur la case là ou il faut entrer le mail (ce qui efface [email protected] ) , qu'il n'entre aucun email, et qui clic sur le lien "Prévenez-moi lorsque le produit est disponible", et bien on se retrouve avec une belle entré dans la base de donnée avec le champs "customer_email" vide...

Donc quand vous entrez un produit en stock et qu'il essais d'envoyer un mail, sa bloque tout car le champs expéditeur se retrouve vide!!

Pour info en réalité pour rendre la déclinaison de nouveau fonctionnel, il faut aller dans sa base de donnée et refaire le lien dans la table ps_product_attribute_combination , car vous remarquerai que l'entré de la déclinaison en question a été supprimer ... enfin attention utilisateur averti seulement!!!! sinon pour éviter tout risque simplement recréer le produit...

Donc il faudrait simplement créer une fonction php qui vérifie si c'est bien un mail valide avant d'entrer ce dernier dans la base de donnée, avec du javascript si possible afin que l'utilisateur puisse rectifier son erreur afin qu'il soit réellement averti le jour ou on reçoit du stock :P

En attendant pour éviter ce genre d'erreur, le meilleur moyen que je connaisse c'est qu'avant d'ajouter du stock, il faut aller dans sa base de donnée, se rendre à la table "ps_mailalert_customer_oos" et d'effacer toute entré avec le champs "customer_email" vide ou invalide...

Link to comment
Share on other sites

  • 3 months later...

Bonjour,


Vous voulez dire que mes prospect qui auront entré leur mail en espérant recevoir l'info de disponibilité ne vont pas être informé de l'arrivée des produits ??? A cause d'autrre qui n'auront pas rentrés les bons mail ...

Comment éviter cela ?
A ce moment là je préfère qu'ils ne puissent même pas renseigné leur mail

Link to comment
Share on other sites

La table c'est ps_mailalert_customer_oos

Si la colonne id_customer contient un chiffre autre que 0, c'est ok car il va chercher l'email avec le compte client, si en revanche la colonne id_customer est à 0 EST que le champs email est vide, c'est une entré qu'il faut effacer!!

En cadeaux voici la requêtes SQL que j'execute pour trouver les mauvaise entré pour les effacers

SELECT *
FROM `ps_mailalert_customer_oos`
WHERE `id_customer` =0
AND `customer_email` NOT LIKE '%@%'

Link to comment
Share on other sites

  • 8 months later...

Chez moi le problème venait du fait qu'il avait pas de template mail affecté à "En attente du paiement par chèque" (Onglet Commandes -> Stauts).

Le mail est envoyé à partir de OrderHistory.php ligne 156.

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