PHP mail();如何设置主题和电子邮件的字符集

时间:2017-02-15 20:41:43

标签: php email character-encoding phpmailer

我正在使用以下代码发送电子邮件:

<?php
$to = $_POST['email'];
$subject = "Subject!";
$message = "Hello!";
$headers = "From: Me<example@example.com>\r\n";
$headers .= "Return-Path: example@example.com\r\n";
$headers .= "BCC: example@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
mail($to,$subject,$message,$headers);
?>

尽管使用charset=utf-8主题和电子邮件地址行中的字符仍然无法正确解码。我得到的字符是这样的:ößä

如何设置主题和电子邮件地址行的字符集?

1 个答案:

答案 0 :(得分:2)

要对您应使用的电子邮件主题进行编码:

$subject = '=?utf-8?B?'.base64_encode($subject).'?=';

然后在mail函数内部:

mail($to,$subject,...);