Home >Backend Development >PHP Problem >Solution to Chinese garbled characters in php emails
The solution to garbled Chinese characters in php emails: first use HTML to edit the email content; then set "Content-Transfer-Encoding: 8Bit"; then the system name and email address of the sending email; and finally set the receiving email address. .
Recommended: "PHP Video Tutorial"
Solution to PHP mail sending UTF-8 Chinese mail garbled
Here, I will solve a problem that maybe many people have encountered and are confused and don’t know how to do it.
How to send Chinese emails without garbled characters?
Here I will tell you how to send Chinese emails in UTF-8 encoding format. This article does not involve Chinese emails in GBK encoding or GB2312 encoding format.
Solving this is actually very simple. Please read the code below. Quote your email headers with '=?UTF-8?B?' and '?='.
You can choose to use HTML to edit your email content, but don’t forget to use utf-8 character encoding.
Mail Header content
MIME-Version: 1.0
MIME version (MIME-Version), this header field uses a version number in the email message to indicate the version of the MIME specification that the message complies with. The current version is 1.0.
Content-Type: text/html; charset=UTF-8;
Supports HTML format, UTF-8 encoding.
Content-Transfer-Encoding: 8Bit
Content transmission encoding, 8-bit ASCII code.
X-Mailer: LixiPHP
The system name for sending emails can be written casually.
From: =?utf-8?B?发送邮件人的姓名?= <FROM_EMAIL_ADDRESS>
Sending email address
To: =?utf-8?B?接受邮件人的姓名?= <TO_EMAIL_ADDRESS>
接受的邮件地址 Subject: =?utf-8?B?邮件标题?=
Mail title
By looking at the source code of the email, I can see:
PHP Mail code
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); }
The above is the detailed content of Solution to Chinese garbled characters in php emails. For more information, please follow other related articles on the PHP Chinese website!