OVH Community, votre nouvel espace communautaire.

PHP mail() retourne false


fritz2cat
02/08/2012, 16h27
L'adresse d'expéditeur
Code:
est tout-à-fait légitime.

J'ignore quelle est la version du serveur Exchange incriminée. Je viens de faire un test avec cette adresse d'expéditeur vers un Exchange 2010 et le message est parfaitement accepté. Si le problème avait existé avec des versions plus anciennes d'Exchange, on l'aurait déjà su bien plus tôt !

Donc: ou bien c'est autre chose que Exchange. Ou bien c'est une configuration parano du gestionnaire d'un serveur Exchange spécifique.

Quelques pistes: (merci Google)
https://kc.mcafee.com/corporate/inde...ent&id=KB72018
https://kc.mcafee.com/corporate/inde...ent&id=KB56459

Frédéric

Eraser
01/08/2012, 15h54
Bonjour à tous !

Je me permet de up ce topic, rencontrant exactement le même problème.
Mon site est hébergé sur une offre pro mutualisé et utilise Wordpress. Or lorsque j'essaye d'envoyer un message sur ma messagerie pro par exemple, j'ai ce genre de message qui apparait dans mon manager :

Code:
Connected to 90.83.**.** but sender was rejected. (220_srv-*****.fr_EWSA3200/SMTP_Ready.?)
HELO_57.mail-out.ovh.net
250_Requested_mail_action_okay,_completed.?)
MAIL_FROM:=501_Syntax_error_-_Badly_formatted_address.??
Remote host said: 501 Syntax error - Badly formatted address.
A noter que les mails sont bien envoyer vers yahoo ou google mais apparemment pose problème vers les messageries exchange (j'en ai testé plusieurs complètement différentes).

J'ai essayer avec des mails envoyé automatiquement par Wordpress mais également des scripts PhP et rien n'y fait donc la configuration mail serait bien en cause ...

Une personne pour m'aider ?
Merci et bonne journée.

Edit : Voici le header d'un mail reçu via gmail si cela peut aider (Ici envoyé avec cform2, un plugin WordPress)
Code:
Delivered-To: *******@gmail.com
Received: by 10.224.137.134 with SMTP id w6csp61451qat;
        Tue, 31 Jul 2012 03:02:51 -0700 (PDT)
Received: by 10.216.95.10 with SMTP id o10mr7397295wef.213.1343728971216;
        Tue, 31 Jul 2012 03:02:51 -0700 (PDT)
Return-Path: 
Received: from 57.mail-out.ovh.net (57.mail-out.ovh.net. [188.165.42.22])
        by mx.google.com with SMTP id j43si15663575wes.90.2012.07.31.03.02.50;
        Tue, 31 Jul 2012 03:02:51 -0700 (PDT)
Received-SPF: pass (google.com: best guess record for domain of bounce-id=D213=U53763.mediaplan.ovh.net=1343728961347290881@57.mail-out.ovh.net designates 188.165.42.22 as permitted sender) client-ip=188.165.42.**;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounce-id=D213=U53763.mediaplan.ovh.net=1343728961347290881@57.mail-out.ovh.net designates 188.165.42.** as permitted sender) smtp.mail=bounce-id=D213=U53763.mediaplan.ovh.net=1343728961347290881@57.mail-out.ovh.net
Received: (qmail 29372 invoked by uid 0); 31 Jul 2012 10:02:47 -0000
Received: from gw2.ovh.net (HELO mediaplan.ovh.net) (213.251.189.202)
  by 57.mail-out.ovh.net with SMTP; 31 Jul 2012 10:02:40 -0000
Received: from localhost.localdomain (localhost [127.0.0.1])
	by localhost.domain.tld (Postfix) with ESMTP id 0974519BA6
	for <*******@gmail.com>; Tue, 31 Jul 2012 12:02:44 +0200 (CEST)
Received: by mediaplan.ovh.net (Postfix, from userid 53763)
	id 0296019BA1; Tue, 31 Jul 2012 12:02:43 +0200 (CEST)
To: *******@gmail.com
Subject: Test
Date: Tue, 31 Jul 2012 10:02:42 +0000
From: "postmaster@******.org" 
Reply-to: ***************
Message-ID: <9db98effe8b68ecd6f5a65916a6023a3@*****.org>
X-Priority: 3
X-Mailer: cformsII (deliciousdays.com) [version 14.5]
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
X-Ovh-Tracer-Id: 12483978168977307777

acidx
25/01/2012, 10h37
Oui enfin, ... c'est exactement ce que je fais ...

Comme je l'ai dis et le redis, le problème ne viens "surement" pas de mon script :/
Et c'est d'ailleurs pour cela que je poste sur ce forum et pas sur n'importe quel autre, parce que je pense que mon problème viens de mon Serveur, qui est chez OVH .. !

chris31
25/01/2012, 10h11
Je viens de retester à partir d'un hébergement Pro :

mail("contact@[mondomaine.tld]","test","message test","From:contact@[mondomaine.tld]");
?>

avec contact@[mondomaine.tld] qui est une adresse mail valide, et ça passe sans problème.

acidx
25/01/2012, 09h28
Encore une fois, merci de ton aide !

Pour le blocage d'envoi des mails, c'est bien ce dont j'avais parlé en "edit", et ils sont activé, de plus l'adresse mail est correcte. Le compteur de mail est, lui, cependant à 0 ...

Mon fichier est encodé en ISO-8895-1. Je viens d'essayer en UTF-8, ca ne change rien. L'envoi des fichier se fait via SVN donc pas de modification de l'encodage.

J'avais déjà fait des test de mail() simpliste (et je viens de réessayer) mais ca ne fonctionne pas non plus ...

Nowwhat
25/01/2012, 08h36
Manager => Mutualisé => Hébergement => Suivi Emails Automatisés
Les détails sont là.

A vérifier: le "Rapport d'erreurs sur" possède une adresse mail valable?
Histoire de recevoir un alerte quand ça foire.

L'inversion $from - $to ... c'est juste l'affichage.

Puis, t'as pas cité UN test très important: le codage de ton fichier - si tes \n (c'est quoi à ton vis ?) sont remplacé par ton éditeur par autre chose. On a même vu que le logiciel FTP le remplace pour autre chose ....

La fonction mail() est très sensible sur le format des ces paramètres.

Par exemple: http://www.siteduzero.com/tutoriel-3...il-en-php.html

Test aussi avec un version minimaliste de mail(), genre http://www.destrucsaweb.com/ressourc...nu/goto_47.php

acidx
25/01/2012, 08h22
Salut,
Tout d'abord merci pour les réponses.

L'inversion $from - $to c'est juste pour l'affichage ou il y a une erreur autre part ?

J'ai remplacé le $from par postmaster@mon-domaine.tld mais ca ne fonctionnais toujours pas.
J'ai remplacé mon adresse GMail (bien que je ne pense pas que le problème vienne de là) par mon adresse du nom de domaine chez OVH.

Toujours rien ...

Ce que je ne comprend pas c'est qu'il n'y a même pas d'envoi du mail ... (return false;)

Le problème se situ probablement sur ma machine, mais .... où ?! Je n'ai fait aucune commande spéciale, j'ai juste PHP de base ...

Enfin bon voilà mon code là où j'en suis :
Code PHP:
$to "contact@mondomaine.fr";
$from  "postmaster@mon-domaine.tld";

$jour  date("d-m-Y");
$heure date("H:i");

$sujet "Essai Mail - $jour $heure";

$contenu .= " \n";
$contenu .= " \n";
$contenu .= " Subject  \n";
$contenu .= " \n";
$contenu .= " \n";
$contenu .= "Mail au format HTML simple avec la fonction PHP mail().
 
$sujet  
 \n"
;
$contenu .= " \n";
$contenu .= " \n";

$headers  "MIME-Version: 1.0 \n";
$headers .= "Content-Transfer-Encoding: 8bit \n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "From: $from  \n";

$verif_envoi_mail TRUE;

$verif_envoi_mail = @mail ($to$sujet$contenu$headers);
 
if (
$verif_envoi_mail === FALSE) echo " ### Verification Envoi du Mail=$verif_envoi_mail - Erreur envoi mail 
 \n"
;
else echo 
" *** Verification Envoi du Mail=$verif_envoi_mail - Mail envoyé avec succès de $from vers $to 
 avec comme sujet: 
$sujet \n";
EDIT: Quand tu parles du Manager, c'est où exactement dans le Manager ?
EDIT 2: Si c'est sous le nom de domaine : Mutualisé / Hébergement / Suivi des Emails / Blocage, alors non, l'envoi n'est pas bloqué

Nowwhat
24/01/2012, 18h53
Citation Envoyé par chris31
... syntaxe avec un triple égal (=== FALSE). A mon avis un double suffit amplement.
Il n'y pas d'erreur.
Google te dira http://www.manuelphp.com/php/languag...comparison.php

Sinon, pour le script: un petit détail.
Dernière ligne: inverse $to et $from

J'ai copié le code entier - codage UNIX - mise MES mails en place et j'ai exécuté le code PHP.
Je reçu le mail .... (un mail sur un des mes boites mail sur un dédié).

Code:
Mail au format HTML simple avec la fonction PHP mail().
Essai Mail - 24-01-2012 19:44
J'ai utilisé comme mail $from: postmaster@mon-domaine.tld, un mail valable pour chaque nom de domaine chez OVH.
Ton mail destinataire (gmail, que j'aime bien moi aussi) te fait pas des bêtises ? (genre: FTFF - car ça reste un mail "gratos" avec autant des qualités ).

A vérifier: ton envoi des mail avec PHP ( mail() ) n'est pas bloqué dans le Manager ??

chris31
24/01/2012, 14h36
Je suis loin d'être un spécialiste en PHP, mais c'est étrange ta syntaxe avec un triple égal (=== FALSE). A mon avis un double suffit amplement.

acidx
24/01/2012, 14h27
Bonjour,

Je tente simplement d'envoyer des mails via la fonction mail() de PHP mais je me heurte depuis maintenant quelques jours à un return false de cette fonction ...

J'ai tenté de contacter le support technique d'OVH qui ma gentillement envoyé baladé ...

J'ai bien vérifié que l'envoi des mails n'était pas bloqué (Hébergement / Suivi des Emails / Blocage), et l'historique qui s'y trouve est inlassablement vide ...

Je ne sais pas si l'erreur viens de mon domaine, de mon serveur ou de mon script (mais j'ai essayé des 10aines de scripts différents sans jamais aboutir à autre chose que ce return false de mail() ...)

Voici mon code de test :
Code PHP:
$to "mailperso@gmail.com";
$from  "contact@mondomaine.fr";

$jour  date("d-m-Y");
$heure date("H:i");

$sujet "Essai Mail - $jour $heure";

$contenu .= " \n";
$contenu .= " \n";
$contenu .= " Subject  \n";
$contenu .= " \n";
$contenu .= " \n";
$contenu .= "Mail au format HTML simple avec la fonction PHP mail().
 
$sujet  
 \n"
;
$contenu .= " \n";
$contenu .= " \n";

$headers  "MIME-Version: 1.0 \n";
$headers .= "Content-Transfer-Encoding: 8bit \n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "From: $from  \n";

$verif_envoi_mail TRUE;

$verif_envoi_mail = @mail ($to$sujet$contenu$headers);
 
if (
$verif_envoi_mail === FALSE) echo " ### Verification Envoi du Mail=$verif_envoi_mail - Erreur envoi mail 
 \n"
;
else echo 
" *** Verification Envoi du Mail=$verif_envoi_mail - Mail envoyé avec succès de $to vers $from 
 avec comme sujet: 
$sujet \n";

Et je me retrouve ici toujours avec un $verif_envoi_mail === FALSE ...

Je suis vraiment à bout là, je ne sais pas où chercher, merci de votre aide !