95 votes

Comment envoyer un e-mail UTF-8 ?

Lorsque j'envoie l'e-mail, l'e-mail n'affiche pas de caractères autres que l'anglais. Il s'affiche comme ci-dessous :

ä»ä»

Peut savoir réellement ce qui cause cela? Même si j'ai essayé d'ajouter le type de contenu et le jeu de caractères dans le script, il affiche toujours la même chose.

J'ai utilisé Mail::Factory("mail");

125voto

s.webbandit Points 4290

Vous pouvez ajouter l'en-tête "Content-Type: text/html; charset=UTF-8" au corps de votre message.

 $headers = "Content-Type: text/html; charset=UTF-8";

Si vous utilisez la fonction native mail() , le tableau $headers sera le 4ème paramètre mail($to, $subject, $message, $headers)

Si vous utilisez PEAR Mail::factory(), le code sera :

 $smtp = Mail::factory('smtp', $params);

$mail = $smtp->send($to, $headers, $body);

2voto

vml vml Points 11

Si ce n'est pas HTML , alors UTF-8 n'est pas recommandé. koi8-r et windows-1251 uniquement sans problème. Utilisez donc le courrier html.

 $headers['Content-Type']='text/html; charset=UTF-8';
$body='<html><head><meta charset="UTF-8"><title>ESP Notufy - ESP </title></head><body>'.$text.'</body></html>';


$mail_object=& Mail::factory('smtp',
    array ('host' => $host,
        'auth' => true,
        'username' => $username,
        'password' => $password));
$mail_object->send($recipents, $headers, $body);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X