8768 sujets

Développement web côté serveur, CMS

Bonjour

J'ai trouvé un problème étrange sur la fonction mail() du php du serveur Apache de mon hébergeur, et j'aimerais savoir si c'est un problème général ou particulier à ce serveur, à sa version d'Apache ou autre.

Voici le code que j'utilise (programme de test):

<?php
$mail = 'adresse@site'; // Déclaration de l'adresse de destination.
$sujet = "Test " . date('d/m/Y H:i:s');

$headers = array('From: "Alma Musica"<webmaster@alma-musica.net>',
                     'Bcc: webmaster@alma-musica.net',
                     'Content-type: text/plain; charset=iso-8859-1',
		     'Content-Transfer-Encoding: 8bit');

$texts = array("Lorem ipsum dolor sit amet, libero turpis non cras ligula",
	"id commodo, aenean est in volutpat amet sodales, porttitor bibendum facilisi suspendisse",
	"aliquam ipsum ante morbi sed ipsum mollis.",
	"Sollicitudin viverra, vel varius eget sit mollis.", 
	"Commodo enim aliquam suspendisse tortor cum diam, commodo facilisis");
$message = utf8_decode(implode("\n", $texts));
echo "<pre>", __FILE__, ' ', __LINE__, "\n";print_r($message);echo "</pre>";
$header = implode("\n", $headers);
echo "<pre>", __FILE__, ' ', __LINE__, "\n";print_r($header);echo "</pre>";
//die();
$x = mail($mail,$sujet,$message,$header);
if($x === true) echo "OK";
else echo "not OK";
//==========
?>

Je reçois ce message et j'analyse son contenu: je trouve les lignes suivantes:
From: "Alma Musica"<webmaster@alma-musica.net>
Content-type: text/plain;ansfer-Encoding: -1;
Content-Transfer-Encoding: 8bit;

C'est à dire qu'une partie de la commande "Content-type" a été changée en une partie de la commande qui suit.

En faisant de multiples essais, j'ai trouvé que c'était la commande
Bcc: webmaster@alma-musica.net

qui posait problème:
1) si je la supprime, le problème disparait
2) si je la mets à la fin, le problème disparait également
$headers = array('From: "Alma Musica"<webmaster@alma-musica.net>',
                     'Content-type: text/plain; charset=iso-8859-1;',
		     'Content-Transfer-Encoding: 8bit;',
                     'Bcc: webmaster@alma-musica.net');

C'est ce que j'ai fait dans mon "vrai programme", et j'ai donc une solution de contournement, mais ça ressemble à un bug: le paramètre Bcc est utilisé pour envoyer le message mais n'est pas inclus dans le header du message, le programmeur s'est peut être mélangé les pinceaux???
Modifié par PapyJP (10 May 2016 - 12:31)