mail() + $headers = problème

Eléphant du PHP | 75 Messages

19 déc. 2007, 23:42

Bonsoir à tous,

Je viens ce soir pour vous demander de l'aide sur un problème que je comprend pas.

J'ai fait un script d'envoi de mail, tout ce qu'il y a de plus simple:
$titre = addslashes($_POST['titre']);
$auteur = 'VKXFree';
$date = $_POST['date'];
$message = addslashes($_POST['message']);

     $headers ='From: "VKXFree"<[email protected]>'."\n";
     $headers .='Reply-To: [email protected]'."\n";
     $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $headers .='Content-Transfer-Encoding: 8bit';

     if(mail('[email protected]', $titre, $message, $headers))
     {
          echo 'Le message a bien été envoyé';
     }
     else
     {
          echo 'Le message n\'a pu être envoyé';
     }
Seul petit "hic" c'est que ça ne l'envoi pas (malgré le echo "le message a bien été envoyé").
Lorsque je retire les variables $headers l'envoi se fait parfaitement...

Malheureusement je n'arrive pas à comprendre d'où le problème peut venir.

Si quelqu'un a une idée, je suis preneur.

Merci, VKX.

Mammouth du PHP | 2937 Messages

19 déc. 2007, 23:59

$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
Remplace cette ligne par celle-ci :
$headers .= 'Content-Type: text/plain; charset=iso-8859-1'."\n";
et essaie.

Soit dit en passant, as-tu vérifié si la fonction mail() était disponible chez ton hébergeur ?

Eléphant du PHP | 75 Messages

20 déc. 2007, 08:19

J'essaie.

Mince, ça ne marche toujours pas. :/

Oui la fonction mail() est active puisque j'arrive à envoyer des mails avec d'autres scripts.

:)

Merci.

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

20 déc. 2007, 10:53

Normalement il faudrait utiliser des "\r\n" à la fin de tes headers pour respecter la RFCchépucombien. Le "\n" seul n'étant à utiliser qu'en qu'à de version de système unix tout déprécié :)

Vire également les guillemets que tu as en trop, précise le type mime, et vie le "'Content-Transfer-Encoding" que je sais absolument pas d'où ça sort :) (Le mieux étant d'essayer les modif une par une pour voir ce qui posait problème :))
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
$headers .= 'To: VKXFree <[email protected]>'."\r\n";
$headers .= 'From: VKXFree <[email protected]>'."\r\n";
$headers .= 'Reply-To: [email protected]'."\r\n";
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 75 Messages

20 déc. 2007, 20:51

Ca rend fou!

Dès que j'enlève le $headers, ça marche.

Dès que je le remet, ça marche plus.

^^

ViPHP
ViPHP | 2144 Messages

21 déc. 2007, 11:37

La modification proposée par Ryle, elle donne quoi ?

Eléphant du PHP | 75 Messages

21 déc. 2007, 20:27

Le mail est envoyé mais les headers ne sont pas pris en compte...

:/