Jump to content

Fonction mail capricieuse


breakolami

Recommended Posts

Bonjour à tous

J'ai installé pour un ami cette formidable boutique Prestashop
Nous sommes en train de faire des tests.

On dirait que la fonction mail ne fonctionne pas bien ou alors ca dépend de l'hébergeur.

La page contact fonctionne mais lorsqu'on clique sur le bouton "Envoyer" on obtient un message d'erreur :



Il y a 1 erreur :

1. une erreur s'est produite pendant l'envoi du message



Nous avons passé une commande et là, personne ne reçoit de mail, ni le client ni l'administrateur.

Dans notre admin, dans outils/contacts les adresses mails sont bien renseignées.
L'adresse mail de l'administrateur est également bien renseignée.

Nous sommes hébergés par Infomaniak l'adresse du site est http://www.911-models.com

La fonction envoyer a un ami ne donne pas de message d'erreur mais par contre on ne reçoit aucun mail

Je sais qu'on peut utiliser SMTP (je n'ai pas testé) mais la fonction mail de PHP est bien suffisante, y a t-il moyen de régler ce problème ?

Merci à tous
Link to comment
Share on other sites

J'ai essayé la fonction SMTP

J'ai bien entré les données mais ça ne fonctionne pas

Lorsque je choisi "aucun cryptage" je vais sur la page contact, je remplis le formulaire et j'envoie
Le résultat est que je me retrouve avec prestashop ou il reste uniquement le header et la colonne de gauche.
Et aucun message n'est arrivé chez le destinataire.

J'ai essayé les 2 types de cryptage et la j'ai un message d'erreur de prestashop.

Le problème je pense est que avec le SMTP Infomaniak demande une authentification SMTP obligatoire
Cette fonction n'est pas dans prestashop malheureusement.

Donc on est un peu dans la M.... avec les fonctions mail qui ne veulent rien savoir.

Je peux contacter Infomaniak pour leur demander de configurer notre fonction mail mais : la configurer comment ?

Link to comment
Share on other sites

en ce qui me concerne, je suis chez Mavenhosting. tout fonctionne parfaitement au niveau des mails.
cette question est donc bien liée (certainement) à l'hébergeur.
si quelqu'un sait comment résoudre ceci de manière systématique, j'en connais qui sont preneurs.

sinon, je repose ce post dans le forum général.

Link to comment
Share on other sites

Il faut pour ceux rencontrant un souci avec la fonction php mail prendre contact avec votre hébergeur. C'est au cas par cas (selon les offres d'hébergement, chez le même hébergeur, 2 offres différentes n'ont pas forcément les mêmes configurations/paramétrages des serveurs).
Pour nos clients, nous effectuons cette démarche lorsque leur hébergement n'est pas pris chez l'un de nos partenaires hébergeur.

Link to comment
Share on other sites

  • 2 months later...

bonjour,

j'ai eu il y a 2 jours le même problème que Breakolami pour ne citer que lui.
Jusque là, ma fonction mail avec ou sans SMTP chez 1and1 fonctionnait parfaitement.

j'ai eu que pour seul solution, réinstaller la base de données d'origine.

Et ensuite j'ai sélectionné les tables que je voulais récupérer (articles, client, etc....) à partir de la base défaillante;
que j'ai réinsérer ensuite sur la base de donné neuve.

j'espère que sa pourras aider ou peut être données des idées.

Bon courage. ;-)

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,

je suis très déçu que ce forum n'est pas donné une réponse à ce problème d'envoi d'email.
Je pense plus particulièrement à FranWeb qui dit il faut appeler au coup par coup l'hebergeur pour solutionner le problème, et bien non je ne suis pas d'accord car un grand nombre d'hebergeurs vous diraient, désolé veuillez choisir un script compatible avec nos serveurs (à condition d'avoir une réponse).

Le problème est le suivant : un bout de codes à modifier dans deux fichiers, j'ai de la chance car mon hebergeur SIVIT.FR que je recommande à toujours tout fait pour solutionner mes problemes et pourtant le code source prestashop c'est pas son problème.

Alors voila ce qu'il convient de faire :

tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi -f %s")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi -f %s")

remplacer par :
tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi")

Voyez que c'est bien sur Prestashop qu'il faut intervenir.

J'espere que cette info vous sera utile c'est juste ces parametres "-f %s" qui etaient incompatibles avec un grand nombre d'hebergeurs.

A plus
Manu

Link to comment
Share on other sites

Topic dupliqué fusionné

Il semble que tu aies créé un nouveau topic plutôt que de répondre à un autre...

Les membres de ce forum aident comme ils le peuvent là où ils le peuvent.

En ce qui concerne FranWeb, ça fait un moment qu'il ne vient plus mais c'est l'une des personnes qui aidait le plus ici.

En tous cas, merci pour l'info.

Link to comment
Share on other sites

Pour notre défense, tu noteras que ce n'est pas le code PrestaShop mais le code d'une librairie externe, Swift, que nous utilisons dans PS.
Et nous ne modifions jamais* les librairies.

Il est donc normal que personne n'ait pu t'aider ici, c'est sur le forum de Swift Mailer qu'il aurait fallu demander.
Ceci dit, nous te sommes reconnaissants de la solution.

Link to comment
Share on other sites

Topic dupliqué fusionné

Il semble que tu aies créé un nouveau topic plutôt que de répondre à un autre...

Les membres de ce forum aident comme ils le peuvent là où ils le peuvent.

En ce qui concerne FranWeb, ça fait un moment qu'il ne vient plus mais c'est l'une des personnes qui aidait le plus ici.

En tous cas, merci pour l'info.


Zendik, cette solution répond à quel prolème de mail ?

quel est le topic de départ ?
Link to comment
Share on other sites

Bonjour,

désolé je suis pas très copain avec l'anglais au lieu de cliquer sur POST REPLY j'ai cliqué sur NEW TOPIC, du coup mon post a attéri ici.

La rubrique concernée est la suivante :
http://www.prestashop.com/forums/viewthread/5221/discussion_generale/fonction_mail_capricieuse/

J'espere donc que vous ne me tiendrez pas rigueur de mon coup de gueule, mais il fallait que ça sorte.

Je remercie Prestashop pour ce script magnifique...

A plus

Link to comment
Share on other sites

pour info j'ai constaté aussi cette erreur sur le formulaire de contact

en regardant mes logs erreur http j'ai vu

qmail-inject: fatal: unable to parse this line:,

la conclusion est que j'avais le caractère : dans la ligne "nom de la boutique" du menu préférences / coordonnées

et ça empechait les mails de partir

Link to comment
Share on other sites

  • 1 month later...

Bonjour
Notre boutique est hébergée chez OVH et sous version 1.0.0.8 et nous venons de rencontrer le même petit soucis. En effet jusqu'a présent aucun soucis de mail (au niveau des commandes clients et des échanges de mail via le site) mais voila nous avons eut le problème sur certaines commandes (mais pas sur toutes) qui n'ont jamais été validés (ni dans l'admin ni au niveau des clients alors que le règlement avait été effectué normalement par le client). Nous avons donc fait la petite modif de Manu (voir page précédente). Si vous etes hébergés chez OVH avez vous rencontré ce genre de problème ?

Merci pour vos réponses

Link to comment
Share on other sites

  • 1 month later...

bonjour, Damien Metzger

Vous ne modifiez pas les librairies externes, c'est une bonne résolution, d'après moi.
Mais si je peux me permettre, il y a moyen de résoudre ce problème, directement dans le code de prestashop, sans modifier la librairie Swift, simplement en passant un paramètre dans les fichiers qui y font appel.

E:\weblocal\prestashop\classes\Mail.php ligne 72 :

$connection = new Swift_Connection_NativeMail();


remplacer par :

$connection = new Swift_Connection_NativeMail(”-oi”);



E:\weblocal\prestashop\install\classes\ToolsInstall.php ligne 67

 $swift = new Swift(new Swift_Connection_NativeMail());


remplacer par :

$swift = new Swift(new Swift_Connection_NativeMail(”-oi”));



MailSend fait appel au paramètre de NativeMail.

Link to comment
Share on other sites

Cette problématique de "tuning" autour de la fonction mail() de PHP est tout de même très étonnante. J'ai utilisé des dizaines de softs PHP/MySQL commerciaux ou opensource et jamais il n'a été nécessaire de faire de réglage pour faire fonctionner cette fonction PHP native ...

Link to comment
Share on other sites

  • 2 weeks later...
[...]
Alors voila ce qu'il convient de faire :

tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi -f %s")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi -f %s")

remplacer par :
tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi")

[...]

Merci c-manu pour la solution que t'as proposé mais le résultat est que, comme l'a dit breakolami, je me retrouve avec la boutique où il reste uniquement le header et la colonne de gauche et aucun message n’est arrivé chez le destinataire alors qu'avant la boutique continuait à s'afficher normalement et je recevais le message :
Il y a 1 erreur :

1. une erreur s’est produite pendant l’envoi du message
Link to comment
Share on other sites

@reinette : j'ai essayé les modifs que t'as proposées. En cliquant sur envoyer le code suivant s'affiche sur la page :

::isEmail($to)) OR (!empty($toName) AND !Validate::isMailName($toName)) OR !is_array($templateVars) OR !Validate::isTplName($template) OR !Validate::isMailSubject($subject)) die(Tools::displayError('Error: mail parameters are corrupted')); /* Construct multiple recipients list if needed */ if (is_array($to)) { $to_list = new Swift_RecipientList(); foreach ($to as $key => $addr) { $to_name = NULL; $addr = trim($addr); if (!Validate::isEmail($addr)) die(Tools::displayError('Error: mail parameters are corrupted')); if ($toName AND is_array($toName) AND Validate::isGenericName($toName[$key])) $to_name = $toName[$key]; $to_list->addTo($addr, $to_name); } $to_plugin = $to[0]; $to = $to_list; } else { /* Simple recipient, one address */ $to_plugin = $to; $to = new Swift_Address($to, $toName); } try { /* Connect with the appropriate configuration */ if (intval($configuration['PS_MAIL_METHOD']) == 2) { $connection = new Swift_Connection_SMTP($configuration['PS_MAIL_SERVER'], $configuration['PS_MAIL_SMTP_PORT'], ($configuration['PS_MAIL_SMTP_ENCRYPTION'] == "ssl") ? Swift_Connection_SMTP::ENC_SSL : (($configuration['PS_MAIL_SMTP_ENCRYPTION'] == "tls") ? Swift_Connection_SMTP::ENC_TLS : Swift_Connection_SMTP::ENC_OFF)); $connection->setTimeout(4); if (!$connection) return false; if (!empty($configuration['PS_MAIL_USER']) AND !empty($configuration['PS_MAIL_PASSWD'])) { $connection->setUsername($configuration['PS_MAIL_USER']); $connection->setPassword($configuration['PS_MAIL_PASSWD']); } } else $connection = new Swift_Connection_NativeMail("-oi"); if (!$connection) return false; $swift = new Swift($connection); /* Get templates content */ $iso = Language::getIsoById(intval($id_lang)); if (!$iso) die (Tools::displayError('Error - No iso code for email !')); $template = $iso.'/'.$template; if (!file_exists($templatePath.$template.'.txt') OR !file_exists($templatePath.$template.'.html')) die(Tools::displayError('Error - The following email template is missing:').' '.$templatePath.$template.'.txt'); $templateHtml = file_get_contents($templatePath.$template.'.html'); $templateTxt = utf8_encode(strip_tags(html_entity_decode(file_get_contents($templatePath.$template.'.txt'), NULL, 'utf-8'))); include_once(dirname(__FILE__).'/../mails/'.$iso.'/lang.php'); global $_LANGMAIL; /* Create mail and attach differents parts */

n'ayant aucune connaissance en php qq1 peut il m'expliquer ce qui se passe :)
merci
Link to comment
Share on other sites

Je recontre le même problème pour l'e-commerce de ma compagne. Jusqu'ici l'envoi de mail fonctionnait très bien mais une cliente nous a signalé aujourd'hui un soucis, et il s'avère qu'il s'agit du même que celui exposé dans ce topic.

J'ai bien évidemment essayé d'utiliser un compte SMTP au lieu de la fonction mail(), ainsi les modifications présentées par reinette et c-manu (qui reviennent finalement au même) mais sans effet.

Le plus étrange c'est qu'aucune modification n'a été effectuée sur le site dernièrement.

J'avoue que je sèche totalement sur la provenance du problème et que ceci est plutôt handicapant: un client qui souhaite vraiment nous contacter prendra la peine d'envoyer directement un mail en passant par sa boîte classique, mais quelqu'un qui souhaiterait contacter la boutique pour une petite info risque tout simplement d'aller voir ailleurs...

( le site est hébergé chez 1&1;)

Link to comment
Share on other sites

Bon et bien très étrangement le problème de mail semble s'être réglé de lui-même, sans modifications de ma part (j'avais restauré les fichiers d'origine après les tests des solutions données ici).
Je suppose que l'hébergeur ne doit pas y être étranger :/

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,
J'ai eu comme vous ce problème avec l'envoi de mails, contact ou autres. Après avoir essayé toutes les solutions proposées ici, rien à faire.
Et en changeant le nom de ma boutique dans B.O - Préférences - coordonnées
car il était trop long et il y avait un accent circonflexe dedans.
Maintenant ça marche et je suis hébergé chez OVH 240plan.
Si ça a aidé quelqu'un merci de répondre et de le dire.
:-)

Link to comment
Share on other sites

  • 3 months later...
Bonjour à tous,


Alors voila ce qu'il convient de faire :

tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi -f %s")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi -f %s")

remplacer par :
tools/swift/Swift/Connection/NativeMail.php:
public function __construct($additional_params="-oi")
tools/swift/Swift/Plugin/MailSend.php:
public function __construct($params="-oi")

Voyez que c'est bien sur Prestashop qu'il faut intervenir.

J'espere que cette info vous sera utile c'est juste ces parametres "-f %s" qui etaient incompatibles avec un grand nombre d'hebergeurs.

A plus
Manu





Super merci pour l'info ! ça m'a bien aidé ! ;o)
Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

je confirme, la methode de c-manu marche nikel,

moi qui suite à une mise à jour de mon hebergeur, a perdu le fonctionnement de mail php, je suis content d'avoir resolu mon probleme apres la lecture de la solution proposé par cmanu, merci encore, c'est genial

Link to comment
Share on other sites

  • 2 months later...
  • 3 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...