Bonjour,

J'ai créé une application sous php 5.3, dans cette application un module permet d'envoyer des e-mail aux membres inscrit et tout fonctionne très bien sous la version 5.3 de php mais ça ce complique avec l'upgrade du serveur en php 5.4.
Le problème que je rencontre est que le mail envoyé est reçu avec toutes les balises HTML et en devient illisible, mais bien sûre par sur tout les outils mail.

voici donc mon code actuel pour l'envois:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
function sendMail($message, $mail, $sujet, $fichier, $path, $expediteur, $mailExpediteur, $nom, $prenom)
{
	$nom = ucfirst(strtolower($nom));
	$messageStart = '<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body><p> Concerne '.$prenom. ' ' .$nom. '<BR></p>';
	$messageEnd = '</body></html>';
 
	$message_html = $messageStart .$message .$messageEnd;
 
	if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
	{
		$passage_ligne = "\r\n";
	}
	else
	{
		$passage_ligne = "\n";
	}
 
	//=====Création de la boundary.
	$boundary = "-----=".md5(rand());
	$boundary_alt = "-----=".md5(rand());
	//==========
 
	//=====Création du header de l'e-mail.
	$header = "From: \"".$expediteur."\"<noreply@mon domaine.xxx>".$passage_ligne;
	$header.= "Reply-to: \"".$expediteur."\" <".$mailExpediteur.">".$passage_ligne;
	$header.= "MIME-Version: 1.0".$passage_ligne;
	$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
	//==========
 
	//=====Création du message.
	$message = $passage_ligne."--".$boundary.$passage_ligne;
	$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
	$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
	//==========
 
	$message.= $passage_ligne."--".$boundary.$passage_ligne;
 
	//=====Ajout du message au format HTML
	$message.= "Content-Type: text/html; charset='UTF-8'".$passage_ligne;
	$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
	$message.= $passage_ligne.$message_html.$passage_ligne;
	//==========
 
	//=====On ferme la boundary alternative.
	$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
	//==========
 
	foreach($fichier as $pieceJointe)
	{
		$file = $path .$pieceJointe;
		$message.= $passage_ligne."--".$boundary.$passage_ligne;
		//=====Lecture et mise en forme de la pièce jointe.
		$fichier   = fopen($file, "r");
		$attachement = fread($fichier, filesize($file));
		$attachement = chunk_split(base64_encode($attachement));
		fclose($fichier);
		//==========
 
		//=====Ajout de la pièce jointe.
		$message.= "Content-Type: application/octet-stream; name=\"".$pieceJointe."\"".$passage_ligne;
		$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
		$message.= "Content-Disposition: attachment; filename=\"".$pieceJointe."\"".$passage_ligne;
		$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
 
		//==========
	}
	$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
 
	//=====Envoi de l'e-mail.
 
	//$sujet = utf8_decode($sujet);
	//$sujet = mb_encode_mimeheader($sujet,"UTF-8");
 
	if($mail != "")
	{
		mail($mail, $sujet, $message, $header);
	}
 
	//==========
}
je vous remercie d'avance pour votre aide,
Bonne journée