missloo

Inscris le 13/10/2009 à 22:40
  • Nombre de sujets
    1
  • Nombre de messages
    2
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
missloo
bonjour

j'ai crée un fichier php qui renvoi un mail automatique a l'utilisateur.
il est formaté en html.
j'ai un problème avec l'encodage des caractère spéciaux.
j'ai compris que le problème venait du choix du charset.
j'ai donc changer
$message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
par
$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
ce qui a résolu le problème pour mon texte mais pas pour le texte qui s'affiche dynamiquement par le biais de variable

pour plus de compréhension voici mon code php
<?php
// on génère une frontière
$boundary = '-----=' . md5( uniqid ( rand() ) );
// on génère un identifiant aléatoire pour le fichier
$file_id = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];

// on va maintenant lire le fichier et l'encoder
$path = 'bonbienvenu.jpg'; // chemin vers le fichier
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path));
fclose($fp);
$content_encode = chunk_split(base64_encode($content));

$headers = "From: \"Passdouceur\"<totot@mdr.com>\n";
$headers .= "X-Priority: 1\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";

$sujet = "Offre découverte PASSDOUCEUR ";

$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "<html><body>Madame ".$nom." ".$prenom.", <br><br>";
$message .= "Veuillez trouvez ci-joint le bon de réduction à valoir sur votre premier rendez vous.<br>";
$message .= "Il est valable sur l'ensemble de la gamme Passdouceur<br>";
$message .= "Alors n'attendez plus <br>";
$message .= "Prenez rendez-vous dés à présent au 06 00 00 00 00 <br>";
$message .= "<br>@+<br><br>";
$message .= "<img src=\"cid:$file_id\" alt=\"le fichier demandé\"><br>";
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: image/jpg; name=\"bonbienvenu.jpg\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-ID: <$file_id>\n\n";
$message .= $content_encode . "\n";
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($mail , $sujet , $message, $headers);
?>


voici le mail reçu avec le ç noté �

Madame Delaville fran�oise,

Veuillez trouvez ci-joint le bon de réduction à valoir sur votre premier rendez vous.
Il est valable sur l'ensemble de la gamme Passdouceur
Alors n'attendez plus
Prenez rendez-vous dés à présent au 06 00 00 00 00

@+

quelle solution pour que tout soit affiché correctement

merci de vos réponses

Ses derniers messages sur les forums

forum
missloo
merci pour réponse

je suis vraiment novice en php
je navigue à vue smiley

la première option "mettre un content-type ISO-8859-1 dans l'entete du mail"
je veux bien le probléme c'est que je ne sais pas comment intégré ça car dans mon code j'ai déjà un Content-Type: multipart/related; boundary=\"$boundary\

qu'est ce qu'il faut que j'écrive exactement.

c'est un peu confus pour moi

les variables $nom et $prenom proviennent d'un fichier flash ou se trouve un formulaire qui envois ces variables au fichier php.

merci d'éclairer ma lanterne.
je suis vraiment en limite de compétence
missloo
bonjour

j'ai crée un fichier php qui renvoi un mail automatique a l'utilisateur.
il est formaté en html.
j'ai un problème avec l'encodage des caractère spéciaux.
j'ai compris que le problème venait du choix du charset.
j'ai donc changer
$message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
par
$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
ce qui a résolu le problème pour mon texte mais pas pour le texte qui s'affiche dynamiquement par le biais de variable

pour plus de compréhension voici mon code php
<?php
// on génère une frontière
$boundary = '-----=' . md5( uniqid ( rand() ) );
// on génère un identifiant aléatoire pour le fichier
$file_id = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];

// on va maintenant lire le fichier et l'encoder
$path = 'bonbienvenu.jpg'; // chemin vers le fichier
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path));
fclose($fp);
$content_encode = chunk_split(base64_encode($content));

$headers = "From: \"Passdouceur\"<totot@mdr.com>\n";
$headers .= "X-Priority: 1\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related; boundary=\"$boundary\"";

$sujet = "Offre découverte PASSDOUCEUR ";

$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"utf-8\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "<html><body>Madame ".$nom." ".$prenom.", <br><br>";
$message .= "Veuillez trouvez ci-joint le bon de réduction à valoir sur votre premier rendez vous.<br>";
$message .= "Il est valable sur l'ensemble de la gamme Passdouceur<br>";
$message .= "Alors n'attendez plus <br>";
$message .= "Prenez rendez-vous dés à présent au 06 00 00 00 00 <br>";
$message .= "<br>@+<br><br>";
$message .= "<img src=\"cid:$file_id\" alt=\"le fichier demandé\"><br>";
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: image/jpg; name=\"bonbienvenu.jpg\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-ID: <$file_id>\n\n";
$message .= $content_encode . "\n";
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($mail , $sujet , $message, $headers);
?>


voici le mail reçu avec le ç noté �

Madame Delaville fran�oise,

Veuillez trouvez ci-joint le bon de réduction à valoir sur votre premier rendez vous.
Il est valable sur l'ensemble de la gamme Passdouceur
Alors n'attendez plus
Prenez rendez-vous dés à présent au 06 00 00 00 00

@+

quelle solution pour que tout soit affiché correctement

merci de vos réponses

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours