Discussion:
Probleme fonction mail en PHP 5
(trop ancien pour répondre)
Pascale
2008-04-18 16:37:48 UTC
Permalink
Bonjour,

Notre hébergeur nous a informés qu'on allait migrer de PHP 4.4.4 à PHP
5.2.0.
Il a mis à notre disposition la possiblité de tester le fonctionnement de
nos sites. Et il y a un truc qui coince, c'est la fonction mail qui ne
marche plus du tout.
Par exemple un code du genre :

*********************************
$sujet="Mon beau sujet";
$texte="Mon beau texte";
$identite="Ma belle identité";
$adresse="Ma belle adresse";
$dest="Mon destinataire beau ou pas";

$message="Message envoyé par le formulaire de mon beau site, de la part de
".$identite." (adresse courriel : ".$adresse."), visiteur non inscrit de
mon beau site :\n\n".$texte;

$from="From: ***@mondomaine.net\nReply-To: ".$adresse."\nReturn-Path:
***@mondomaine.net\n";

mail($dest,$sujet,$message,$from);
*********************************

Cela SEMBLE fonctionner (aucune erreur n'est signalée, mon programme dit
que le message a été envoyé normalement), mais aucun message n'arrive. Cela
se produit pour TOUTES les utilisations de la fonction mail, pour tous nos
sites. Actuellement, tout fonctionne bien, mais pour pas longtemps...

Notre hébergeur nous dit que le safe_mode est activé par défaut et qu'il
faut vérifier que «  vos appels à la fonction mail sont compatible avec
l'utilisation du safe_mode. Vous ne pouvez pas par exemple utiliser le 5eme
paramètre 'additional_parameters ».

Moi je veux bien, mais le safe_mode est déjà activé actuellement sur tous
nos sites et... euh... comment vous dites ? additionnal_parameters ?...
Dans le doute, j'ai tenté de simplifier le programme ci-dessus en
remplaçant :

$from="From: ***@mondomaine.net\nReply-To: ".$adresse."\nReturn-Path:
***@mondomaine.net\n";
par :
$from="From: ***@mondomaine.net";

Ça ne marche pas mieux. Si quelqu'un peut m'aider, je lui en saurai gré...
--
Pascale
Sylvain SF
2008-04-18 23:19:58 UTC
Permalink
Post by Pascale
$dest="Mon destinataire beau ou pas";
le 1er paramètre est censé être une adresse valide.
ce texte vaut pour un exemple qui ne dit pas ce qu'il fait ?
Post by Pascale
$message="...";
ces headers sont très léger, il faudrait plutôt:

$headers =
"From: ***@mondomaine.net\n".
"Reply-To: $adresse\n".
"Return-path: ***@mondomaine.net\n".
"MIME-Version: 1.0\n".
"Content-Type:text/html;charset=iso-8859-1[5]\n".
"Content-Transfer-Encoding: 8bit\n\n";
Post by Pascale
Cela SEMBLE fonctionner (aucune erreur n'est signalée, mon programme dit
que le message a été envoyé normalement), mais aucun message n'arrive.
est-ce que seulement le msg part ?
quel smtp est configuré dans php.ini ? est-il valide ?
avez-vous regardé les logs du MTA ?

mail() n'a pas été modifié entre php 4 et 5, s'il ne marche pas c'est
que php ou globalement les services mails sont configurés différemment.

Sylvain.
Pascale
2008-04-19 16:40:10 UTC
Permalink
Post by Sylvain SF
le 1er paramètre est censé être une adresse valide.
ce texte vaut pour un exemple qui ne dit pas ce qu'il fait ?
Bien sûr : j'ai mis partout des paramètres fantaisistes pour l'exemple,
mais « en vrai » ce sont des variables tout à fait cohérentes.

Je n'ai peut-être pas été assez précise quand j'ai parlé d'environnement de
test. En fait, pour une adresse du style : http://www.adressedemonsite.org
l'hébergeur nous propose de tester le fonctionnement en PHP5 sur
http://www.adressedemonsite.org:89
Post by Sylvain SF
$headers =
"Reply-To: $adresse\n".
"MIME-Version: 1.0\n".
"Content-Type:text/html;charset=iso-8859-1[5]\n".
"Content-Transfer-Encoding: 8bit\n\n";
D'accord, mais sûr que ça marche avec PHP 5 ?
Post by Sylvain SF
est-ce que seulement le msg part ?
quel smtp est configuré dans php.ini ? est-il valide ?
Arghhh... j'ai trouvé, je dois devenir blonde de l'intérieur, faut croire...

Actuellement, on a :

sendmail_path
Local value /etc/apache2/conf/sendmail-secure www.adressedemonsite.org
Master value /usr/sbin/sendmail -t -i
SMTP localhost

Il faut modifier tout bêtement local value dans le htaccess en
rajoutant :89 à la fin de l'adresse du site et ça marche. Je l'avais pourtant
regardé, ce fichu sendmail_path et le problème ne m'avait pas sauté aux yeux.
Comme quoi, la même question posée par une personne extérieure peut apporter
la solution !

Merci beaucoup !
--
Pascale
BertrandB
2008-04-19 16:40:10 UTC
Permalink
Post by Sylvain SF
est-ce que seulement le msg part ?
quel smtp est configuré dans php.ini ? est-il valide ?
avez-vous regardé les logs du MTA ?
est-ce que le sendmail_path est dans le safe_exec_dir ?

pour contourner ce problème sur demo1g d'ovh j'utilise phpmailer pour
attaquer le smtp de laposte.net ... je sais qu'une modif de phpmailer
lui permet aussi d'attaquer le smtp de gmail
Pascale
2008-04-19 16:40:10 UTC
Permalink
"Sylvain SF" <***@boiteaspam.info> �crivait news:4808fc36$0$862$***@news.orange.fr:

Bien sûr : j'ai mis partout des paramètres fantaisistes pour l'exemple,
mais « en vrai » ce sont des variables tout à fait cohérentes.

Je n'ai peut-être pas été assez précise quand j'ai parlé d'environnement de
test. En fait, pour une adresse du style : http://www.adressedemonsite.org
l'hébergeur nous propose de tester le fonctionnement en PHP5 sur
http://www.adressedemonsite.org:89
Post by Sylvain SF
$headers =
"Reply-To: $adresse\n".
"MIME-Version: 1.0\n".
"Content-Type:text/html;charset=iso-8859-1[5]\n".
"Content-Transfer-Encoding: 8bit\n\n";
D'accord, j'ajouterai cela lorsque mon problème sera résolu.
Sûr que ça marche avec PHP 5 ?
Post by Sylvain SF
est-ce que seulement le msg part ?
J'aurais tendance à penser que non (sinon, je ne vois pas ce qui
l'empêcherait d'arriver), mais je n'en sais rien.
Post by Sylvain SF
quel smtp est configuré dans php.ini ? est-il valide ?
Actuellement, on a :

sendmail_path
Local value /etc/apache2/conf/sendmail-secure www.adressedemonsite.org
Master value /usr/sbin/sendmail -t -i
SMTP localhost

J'ai tenté de modifier tout bêtement local value dans le htaccess en
rajoutant :89 à la fin de l'adresse du site, mais en vain.
Post by Sylvain SF
avez-vous regardé les logs du MTA ?
Euh ?... Je me sens devenir blonde du dedans...
Post by Sylvain SF
mail() n'a pas été modifié entre php 4 et 5, s'il ne marche pas c'est
que php ou globalement les services mails sont configurés
différemment.
Oui, c'est pourquoi je m'étonne que ce qui fonctionnait parfaitement sur
tous les sites ne marche plus sur aucun.
--
Pascale
Continuer la lecture sur narkive:
Loading...