Affichage incorecte dans la colonne Expéditeur

Signaler
Messages postés
235
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
235
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
26 mai 2013
-
Bonjour à tous,
J'ai un programme d'envoi d'e-mail en PHP qui fonctionne presque parfaitement hormis que les caractères spéciaux s'affiche avec une coquetterie dans la colonne Expéditeur (Thunderbird).
Le nom de l'Expéditeur étant François Arnaud il s'affiche : "François" Arnaud (les guillemets!).
C'est un détail mais j'aimerais bien comprendre d'où vient l'erreur et, si possible, pouvoir la corriger.
J'imagine que c'est dans l'en-tête que doit se situer le problème mais je n'arrive pas à mettre le doigt dessus.
Je n'ai pas d'erreurs dans le corps du message pas plus que dans le sujet ni même le "message de ..." quand j'emploie des caractères spéciaux.
D'avance merci pour vos réponses.

<?php
//07 12 2012 17h54
$expediteur = $_POST['expediteur'];
$adresse = $_POST['adresse'];
$prenom_nom = $_POST['prenom_nom'];
$prenom_nom = htmlspecialchars($prenom_nom, ENT_QUOTES, 'UTF-8');
$titre = $_POST['titre'];
$titre = htmlspecialchars($titre);
$message_texte = $_POST['message_texte'];
$message_html = $_POST['message_html'];
$image = $_POST['image'];


// filtre des serveurs présentant des bogues.

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $expediteur)){
$saut = "\r\n";
} else {
$saut = "\n";
}

//entête

$delimiteur = "-----=".md5(uniqid(rand()));
$delimiteur_alt = "-----=".md5(uniqid(rand()));


$entete = "MIME-Version: 1.0".$saut;
$entete .= "Content-Type: multipart/related;".$saut." boundary="$delimiteur"".$saut;
$entete .= "From: ".$prenom_nom."<$expediteur>".$saut;
$entete.= "Reply-to : $expediteur\nX-Mailer:PHP".$saut;
$entete .= "Disposition-notification-to: ".$expediteur.$saut;
$entete .= "Return-Receipt-To: ".$expediteur.$saut;
$entete .= $saut;


//message

$msg = "Message de ".$prenom_nom.$saut;

//message texte

$msg .= $saut."--".$delimiteur.$saut;
$msg.= "Content-Type: multipart/alternative;".$saut." boundary="$delimiteur_alt"".$saut;
$msg .= $saut."--".$delimiteur_alt.$saut;
$msg .= "Content-Type: text/plain; charset="utf-8"; format=flowed".$saut;
$msg .= "Content-Transfer-Encoding:8bit".$saut;
$msg .= $saut.$titre.$saut;
$msg .= $message_texte.$saut;

//message HTML

$msg .= $saut."--".$delimiteur_alt.$saut;
$msg .= "Content-Type: text/html; charset="utf-8"".$saut;
$msg .= "Content-Transfer-Encoding:8bit".$saut;
$msg .= $saut.$message_html.$saut;
$msg .= $saut."--".$delimiteur_alt.$saut;

//image

if($image != 'null'){
$image = '../photos/'.$image;
$fp = fopen($image, "rb");
$fichierattache = fread($fp, filesize($image));
fclose($fp);
$fichierattache = chunk_split(base64_encode($fichierattache));

$msg .= $saut."--".$delimiteur.$saut;
$msg .= "Content-Type: application/octet-stream; name="$image"".$saut;
$msg .= "Content-Transfer-Encoding: base64".$saut;
$msg .= "Content-ID: ".$saut;
$msg .= $saut;
$msg .= $fichierattache.$saut;
}

$msg .= $saut.$saut;
$msg .= $saut."--".$delimiteur.$saut;

mail($adresse,$titre,$msg,$entete);

sleep(3);

echo "message à $adresse envoyé";
?>



Pi'ère2

2 réponses

Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013

Qu'affiche l'a variable $prenom_nom si tu fais un echo ?
Messages postés
235
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
26 mai 2013

Bonjour,
J'envoie les e-mails depuis une application Flash dans laquelle j'ai fais afficher un echo $prenom_nom du PHP pour voir ce qui se passe.
La variable s'affiche normalement dans le Flash sans les guillemets.


Pi'ère2