Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'ai un formulaire d'envoi de mail qui utilise un éditeur wysiwyg pour le textarea afin d'envoyer des mails en HTML.
Le problème est que je reçois les mails en texte normal...
Je pense que ça vient des headers mais je ne vois pas trop oùu cà cloche.
C'est un script que j'ai récupéré et adapté.
Voici la partie d'envoi du mail:
if (!ereg($regex,$pseudo)){
die('Pseudo non conforme');
}
elseif (!ereg($regex,$objet)){
die('Objet non conforme');
}
elseif (!ereg($regex,$message)){
die('Message non conforme');
}
elseif (!preg_match($regex_mail, $emetteur)){
die('Email non conforme');
}
$piecejointe = "";
if(!$erreur && strlen($_FILES['fichier']['name'])) {
$fichier = $_FILES['fichier'];
$name = $fichier['name'];
$temp = $fichier['tmp_name'];
$size = $fichier['size'];
# séquence de caractères
$destination = $rep.$name;
# upload du fichier sur le serveur
if($size > $taillemax)
$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
elseif(!@is_uploaded_file($temp))
$erreur = "Téléchargement du fichier $name impossible";
elseif(!@move_uploaded_file($temp, $destination))
$erreur = "Problème de transfert du fichier $name";
else {
//===== On vérifie maintenant le type de fichier
if(!function_exists('mime_content_type')) {
function mime_content_type($fichier) {
# ajouter autant de combinaisons que souhaitées
$mime = array(
'.gif' => 'image/gif',
'.jpg' => 'image/jpeg',
'.jpeg' => 'image/jpeg',
'.jpe' => 'image/jpeg',
'.bmp' => 'image/bmp',
'.png' => 'image/png',
'.tif' => 'image/tiff',
'.tiff' => 'image/tiff',
'.swf' => 'application/x-shockwave-flash',
'.doc' => 'application/msword',
'.xls' => 'application/vnd.ms-excel',
'.ppt' => 'application/vnd.ms-powerpoint',
'.pdf' => 'application/pdf',
'.ps' => 'application/postscript',
'.eps' => 'application/postscript',
'.rtf' => 'application/rtf',
'.zip' => 'application/zip',
'.rar' => 'application/rar',
'.html' => 'text/html',
'.htm' => 'text/html',
'.txt' => 'text/plain',
);
# par défaut
if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
return $type;
}
}
$mimetype = mime_content_type($destination);
# lecture et conversion du fichier
if($openf = @fopen($destination, "rb")) {
$fichier = fread($openf, filesize($destination));
@fclose($openf);
# encodage norme RFC 2045
$piecejointe = chunk_split(base64_encode($fichier));
} else {
$erreur = "Problème de lecture du fichier $name";
}
}
}
//===== Ajout du message
if(!$erreur) {
$message_final = "";
$message_final .= strip_tags($message); // valeur du message lui meme
# en-têtes
$headers = "MIME-Version: 1.0\n";
$headers .= 'From: XXXXX <'.$emetteur.'>'."\r\n";
# si pièce jointe on ajoute l'en-tête spécifique avec séparateurs
if(strlen($piecejointe)) {
$boundary = md5(uniqid(rand())); // séparateur
$headers .= 'Content-Type: multipart/mixed;'."\n".' boundary="'.$boundary.'"';
$message_final =
"This is a multi-part message in MIME format.\n--$boundary\n".
"Content-Type: [b][color=#e3281c]text/html[/color][/b]; charset=ISO-8859-1\r\n\n".
"Content-Transfer-Encoding: 8bit\r\n\n".
"$message_final\n\n--$boundary\n".
"Content-Type: $mimetype; name=\"$name\"\r\n".
"Content-Transfer-Encoding: base64\r\n".
"Content-Disposition: attachment; filename=\"$name\"\r\n\n".
"$piecejointe\n--".
$boundary."--\n";
}
$message_final =stripslashes($message_final);
//===== On récupère les adresses mail dans la BDD
require_once('config/config.inc.php');
foreach ($_POST['dest'] as $id_user) {
$requete = "SELECT Adresse_mail AS email FROM adherents WHERE ID='$id_user'";
$result=mysql_query($requete) or die('Erreur SQL ! Adherents '.mysql_error());
while ($destinataire = mysql_fetch_object($result)) {
if (mail($destinataire->email, $objet, $message_final, $headers)) {
$msg = 'Le '.date("d-m-Y").' à '.date("H:i").'. Expéditeur: '.$emetteur.' -> Envoi réussi à '.$destinataire->email.'. Pièce jointe: '.$name.'';
}else{
$msg = '*** ECHEC Le '.date("d-m-Y").' à '.date("H:i").'. Expéditeur: '.$emetteur.' -> Envoi vers '.$destinataire->email.'. Pièce jointe: '.$name.'';
}
$etat = "mail.txt";
$inF = fopen($etat,"a");
fputs($inF,$msg."\n");
fclose($inF);
// @unlink($destination); // suppression de la pièce jointe ou non du repertoire d'upload
}
}
?>
Petite précision, si je text/plain, les sauts de ligne sont bien respectés. Mais si je mets text/html, tout s'affiche sur la même ligne.
Quelqu'un a une idée svp ?
Hors ligne
mettre çà ou tu peux
$headers .='Content-Type: text/html'."\n";
a++
Hors ligne
C'est mis (en ligne 99)
J'avais voulu le mettre en rouge dans le forum, mais ça a merdé
Hors ligne
Pages :: 1