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

藏色散人
藏色散人original
2020-08-15 09:38:533085parcourir

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.

Solution aux caractères chinois tronqués dans les e-mails php

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn