mail() return false

Petit nouveau ! | 4 Messages

01 août 2012, 16:37

Bonjour, à tous et merci du temps que vous passerez a lire mon post.

Voila j'ai un problème très simple, la fonction php :

mail('[email protected]', 'Mon Sujet', 'MonMessage');

Renvois false. Pourquoi ? Mystère.
J'ai tenter de faire un filter_var('[email protected]', FILTER_VALIDATE_EMAIL); pour voir, mais il me dit que tout vas bien.
J'ai éplucher ce forum sans rien trouver de suffisamment comparable pour m'aider.
J'utilise PHP5, apache2 et le framwork CakePHP, mais je n'y connais pas grand choses en mail, je sais juste que quand on rentre dans les détails sa peut devenir vite très compliquer.
J'ai cherché dans les fichier de log de php5, de apache2 et de CakePHP sans rien trouver, cela dit je n'ai qu'une formation de dev-web, alors j'ai peut être raté certain fichiers de log php5 et apache2 dont j'ignore l’existence.
EDIT : D'après l'administrateur système de ma boite, le même serveur héberge un redmine dont les mails partent correctement.

Je suis dessus depuis 8 heurs et je n'ai toujours pas trouver pourquoi la fonction mail s'obstine à renvoyer false, quelqu'un à une idée ?
Si oui je vous aime.

Cordialement

Mammouth du PHP | 702 Messages

01 août 2012, 17:20

est-ce que SMTP est définie dans le fichier php.ini ?

Petit nouveau ! | 4 Messages

01 août 2012, 17:37

un "grep SMTP /etc/php5/apache2/php.ini" renvois
SMTP = localhost

Mammouth du PHP | 702 Messages

01 août 2012, 17:42

essaye d'utiliser le code sous-jacent:
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
echo 'I am : ' . `whoami`;
$result = mail('[email protected]','Testing 1 2 3','This is a test.');
echo '<hr>Result was: ' . ( $result === FALSE ? 'FALSE' : 'TRUE') . $result;
echo '<hr>';
echo phpinfo();
?>
pour voir les erreurs

Petit nouveau ! | 4 Messages

01 août 2012, 17:56

C'est fait, donc j'ai
I am : www-data
Result was: FALSE

Pour le reste voici les champs que j'ai trouver avec ctrl+F "mail" :

Directive Local Value Master Value
mail.add_x_header On On
mail.force_extra_parameters no value no value
mail.log /tmp/mail.php.log /tmp/mail.php.log
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
suhosin.mail.protect 0 0
Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i

Au passage j'ai rechercher dans mon /user/sbin/ et il n'y a pas de binaire nomé sendmail,
dans /user/bin/ non plus d'ailleur

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 août 2012, 20:40

Logiquement avec le error_reporting à E_ALL, il devrait t'afficher les messages d'erreur de php (et donc ceux liés à l'envoi de mail). Il devrait alors te dire s'il ne parvient pas à se connecter au SMTP, s'il se connecte mais n'est pas autorisé à envoyé de mail, etc.

Tu n'as pas un message juste avant le "Result was:" ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 4 Messages

02 août 2012, 09:37

Nada, il n'y a rien :/
J'ai essayer avec error_reporting(-1); et ini_set('display_errors', 'stdout'); pour voir mais sa ne donne rien non plus.