Jump to content
Rdev

Sending failed using mail() as PHP's default mail() function returned boolean FALSE

Recommended Posts

Bonjour,

 

je suis sur prestashop 1.6,

j'ai un problème dans l'envoie des mails

j'ai ce message d'erreur

Erreur : veuillez vérifier votre configuration
Sending failed using mail() as PHP's default mail() function returned boolean FALSE.

j'ai modifié ces fichiers suivants mais l'envoie ne fonctionne pas

/tools/swift/Swift/Plugin/MailSend.php
/tools/swift/Swift/Message.php
/tools/swift/Swift.php


/tools/swift/Swift/Plugin/MailSend.php (around line 158)

Old:
$headers = $headers->build();

New:
$headers = $headers->build();
$params = "";

/tools/swift/Swift/Message.php (around line 79)

Old:
$this->setFrom("");

New:
$this->setFrom("yourmail@yourdomain");

/tools/swift/Swift.php (around line 370)

Old:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);

New:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);
if (!$has_reply_to[0]) $message->setReplyTo($from->getAddress()); 

qui a une idée et merci

Share this post


Link to post
Share on other sites

Bonjour

 

Votre topic concerne le développement je déplace sur le forum Développement et adaptation de prestashop.

Share this post


Link to post
Share on other sites

Bonjour,

 

je suis sur prestashop 1.6,

j'ai un problème dans l'envoie des mails

j'ai ce message d'erreur

Erreur : veuillez vérifier votre configuration
Sending failed using mail() as PHP's default mail() function returned boolean FALSE.

j'ai modifié ces fichiers suivants mais l'envoie ne fonctionne pas

/tools/swift/Swift/Plugin/MailSend.php
/tools/swift/Swift/Message.php
/tools/swift/Swift.php


/tools/swift/Swift/Plugin/MailSend.php (around line 158)

Old:
$headers = $headers->build();

New:
$headers = $headers->build();
$params = "";

/tools/swift/Swift/Message.php (around line 79)

Old:
$this->setFrom("");

New:
$this->setFrom("yourmail@yourdomain");

/tools/swift/Swift.php (around line 370)

Old:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);

New:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);
if (!$has_reply_to[0]) $message->setReplyTo($from->getAddress()); 

qui a une idée et merci

Salut Rdev,

 

 

         Je viens de régler le même souci sous prestashop 1.6.0.9 tout fonctionne parfaitement maintenant et je reçois les mails de ma boutique! C'est un problème de prestashop (bug?) il y a plusieurs fichiers a modifier

 

         Tu peux trouver la solution en cliquant ici: http://www.inmotionhosting.com/support/edu/prestashop-15/349-php-mail-error

 

          Bonne chance a toi ;)

Edited by rololo88 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour rololo88,

 

Merci pour votre réponse , j'ai fait déjà ces modifications mais il ne fonctionne pas

 

et quand j'ai mis le fichier phpinfo.php

 

j'ai disable_functions no value no value

 

 voir capture

 

pouvez vous m’aidè et merci

post-295981-0-90652700-1416476276_thumb.png

Edited by Rdev (see edit history)

Share this post


Link to post
Share on other sites

Bonjour rololo88,

 

j'ai aussi le même problème sous PS 1.6

 

j'ai modifié les fichiers PHP adéquats : sans succès.

 

as tu STP modifié ton fichier php.ini ? si oui quels sont les paramètres qui ont été modifiés ?

 

merci par avance

Share this post


Link to post
Share on other sites

Bonjour,

Idem pour moi, même problème! Si quelqu'un trouve une solution je suis preneur.

Merci

Share this post


Link to post
Share on other sites

même problème ...

Il y a 2 fichiers MailSend.php : /Tools/swift/Swift/MailSend.php & /Tools/swift/Swift/Plugin/MailSend.php
C'est ce dernier qui est responsable de la fonction d'envoie d'email.

Me suis rendu compte que dans la fonction sendPerformed(Swift_Events_SendEvent $e), on à ça n'est ce pas :

$to = array();
    foreach ($recipients->getTo() as $addr)
    {
      if ($this->isWindows()) $to[] = substr($addr->build(true), 1, -1);
      else $to[] = $addr->build();
    }
    $to = implode(", ", $to);

et là, le résultat de ce $to, c'est bien un string mais elle vaut le nom et non l'email !
Evidement quand on met l'email, ça marche mieux ...
Bref j'ai pas trouv la soluce mais ça orientera peut être d'autres personnes ... et je continue de chercher ...

Share this post


Link to post
Share on other sites

J'ai une solution, un peu merdique à proposer, faute de mieux, car elle ne gèrera pas les envois de mails groupés/multidestinataires ...

Dans MailSend.php : on commente comme ci après, et on ajoute ça : $to = array_pop(array_keys(($recipients->getTo())));

//    $to = array();
//    foreach ($recipients->getTo() as $addr)
//    {
//      if ($this->isWindows()) $to[] = substr($addr->build(true), 1, -1);
//      else $to[] = $addr->build();
//    }
//    $to = implode(", ", $to);
    $to = array_pop(array_keys(($recipients->getTo())));

et dans la fonction doMail, on commente pour garder seulement le 'Safe_Mode' :
   

    //if (!ini_get("safe_mode")) $success = mail($to, $subject, $message, $headers, $params);
//    else
        $success = mail($to, $subject, $message, $headers);
   

Allez savoir pourquoi ça ne marche plus ... version de PHP, serveur SMTP mal renseigné (pas avec le fct mail)...   ?
comme ça, ça dépanne en tout cas ... Si vous avez mieux, je suis preneur ...
 

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More