Maison > Article > développement back-end > Solution aux caractères chinois tronqués dans les e-mails php
Solution aux caractères chinois tronqués dans les e-mails PHP : utilisez d'abord HTML pour modifier le contenu de l'e-mail ; puis définissez "Content-Transfer-Encoding : 8Bit" ; puis définissez le nom du système et l'adresse e-mail de l'e-mail d'envoi ; enfin, définissez l'adresse e-mail de réception.
Recommandé : "Tutoriel vidéo PHP"
Résoudre le courrier PHP envoyant du courrier chinois UTF-8 tronqué
Ici, je vais résoudre un problème que beaucoup de gens ont pu rencontrer et sont confus et ne savent pas comment faire.
Comment envoyer des emails chinois sans caractères tronqués ?
Ici, je vais vous expliquer comment envoyer des e-mails chinois au format d'encodage UTF-8. Cet article ne concerne pas les e-mails chinois au format d’encodage GBK ou GB2312.
Résoudre ce problème est en fait très simple. Veuillez lire le code ci-dessous. Citez les en-têtes de vos e-mails avec '=?UTF-8?B?' et '?='.
Vous pouvez choisir d'utiliser HTML pour modifier le contenu de votre e-mail, mais n'oubliez pas d'utiliser le codage de caractères UTF-8.
Contenu de l'en-tête de l'e-mail
MIME-Version: 1.0
Version MIME (MIME-Version). Ce champ d'en-tête utilise un numéro de version dans le message électronique pour indiquer la version de la spécification MIME à laquelle le message est conforme. La version actuelle est la 1.0.
Content-Type : text/html ; charset=UTF-8 ;
Prend en charge le format HTML, l'encodage UTF-8.
Content-Transfer-Encoding: 8Bit
Encodage de transfert de contenu, code ASCII 8 bits.
X-Mailer: LixiPHP
Le nom du système d'envoi d'e-mails, vous pouvez écrire ce que vous voulez.
From: =?utf-8?B?发送邮件人的姓名?= <FROM_EMAIL_ADDRESS>
Adresse email d'envoi
To: =?utf-8?B?接受邮件人的姓名?= <TO_EMAIL_ADDRESS>
接受的邮件地址 Subject: =?utf-8?B?邮件标题?=
Titre du mail
En regardant le code source de l'email, je peux voir :
Code Mail PHP
public function send_email($to, $from, $subject, $message, $fromname = ”, $toname=”) { if($toname) { $to = ‘=?UTF-8?B?’.base64_encode($toname).’?= ‘ . $to; } if($fromname) { $from = ‘=?UTF-8?B?’.base64_encode($fromname).’?= ‘ . $from; } $headers = ‘From: ‘.$from."\r\n". "MIME-Version: 1.0\r\n" . "Content-Type: text/html; charset=UTF-8; format=flowed\r\n" . "Content-Transfer-Encoding: 8Bit\r\n" . ‘X-Mailer: PHP/’ . phpversion(); $subject = ‘=?UTF-8?B?’.base64_encode($subject).’?=’; //send email mail($to, $subject, $message, $headers); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!