Home >Backend Development >PHP Tutorial >How to Ensure Correct Character Encoding in UTF-8 Emails Using PHP\'s `mail()` and PEAR Mail?
Sending UTF-8 Emails
When sending emails, it's crucial to handle character encoding properly to avoid garbled characters. One common issue is the encoding of non-English characters, such as those used in various languages.
In the provided scenario, the sender faced the problem of non-English characters appearing as unreadable text after sending an email. Despite adding Content-Type and Charset headers, the issue persists.
To rectify this, the key is to include the header Content-Type: text/html; charset=UTF-8 in the message body. This header informs email clients that the message is in HTML format and uses the UTF-8 character encoding, enabling them to display all characters correctly.
With the native mail() function, this header can be specified as the fourth parameter:
mail($to, $subject, $message, $headers);
Where $headers is a string containing the Content-Type header.
In the case of using the PEAR Mail::factory() library:
$smtp = Mail::factory('smtp', $params); $mail = $smtp->send($to, $headers, $body);
Here, $headers is an array containing the Content-Type header.
By adding the appropriate Content-Type header, the email will be sent with correct character encoding, ensuring that non-English characters are displayed properly in the recipient's mail client.
The above is the detailed content of How to Ensure Correct Character Encoding in UTF-8 Emails Using PHP\'s `mail()` and PEAR Mail?. For more information, please follow other related articles on the PHP Chinese website!