Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme fonction mail en PHP 5

4 réponses
Avatar
Pascale
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: adr@mondomaine.net\nReply-To: ".$adresse."\nReturn-Path:
postmaster@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: adr@mondomaine.net\nReply-To: ".$adresse."\nReturn-Path:
postmaster@mondomaine.net\n";
par :
$from="From: adr@mondomaine.net";

Ça ne marche pas mieux. Si quelqu'un peut m'aider, je lui en saurai gré...

--
Pascale

4 réponses

Avatar
Sylvain SF
Pascale wrote on 18/04/2008 18:37:

$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 ?

$message="...";

$from="From: : ".$adresse."nReturn-Path:
";


ces headers sont très léger, il faudrait plutôt:

$headers "From: ".
"Reply-To: $adressen".
"Return-path: ".
"MIME-Version: 1.0n".
"Content-Type:text/html;charset=iso-8859-1[5]n".
"Content-Transfer-Encoding: 8bitnn";


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.

Avatar
Pascale
"Sylvain SF" écrivait
news:4808fc36$0$862$:

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

ces headers sont très léger, il faudrait plutôt:

$headers > "From: ".
"Reply-To: $adressen".
"Return-path: ".
"MIME-Version: 1.0n".
"Content-Type:text/html;charset=iso-8859-1[5]n".
"Content-Transfer-Encoding: 8bitnn";


D'accord, j'ajouterai cela lorsque mon problème sera résolu.
Sûr que ça marche avec PHP 5 ?

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.

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.

avez-vous regardé les logs du MTA ?


Euh ?... Je me sens devenir blonde du dedans...

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

Avatar
BertrandB

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

Avatar
Pascale
"Sylvain SF" écrivait
news:4808fc36$0$862$:

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

ces headers sont très léger, il faudrait plutôt:

$headers > "From: ".
"Reply-To: $adressen".
"Return-path: ".
"MIME-Version: 1.0n".
"Content-Type:text/html;charset=iso-8859-1[5]n".
"Content-Transfer-Encoding: 8bitnn";


D'accord, mais sûr que ça marche avec PHP 5 ?

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