PHPMailer 没有在 header 中正确设置字符集
PHPMailer not setting charset in header correctly
我正在使用 PHPMailer 6.1.8 发送纯文本邮件。我想用 utf8 编码发送它们,但在 Thunderbird 中,收到的电子邮件在 header:
中仍然有错误的内容类型
Content-Type: text/plain; charset=iso-8859-1
我的PHP代码:
function sendMail($subject, $body, $to, $from = 'mail@server1.intranet.lan', array $cc = [], array $bcc = []) {
$mail = new PHPMailer();
$mail->charSet = 'UTF-8';
$mail->setLanguage = 'de';
$mail->isSMTP();
$mail->Host = '****';
$mail->SMTPAuth = true;
$mail->Username = '****';
$mail->Password = '****';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom($from);
$mail->addAddress($to);
foreach ($cc as $address) {
$mail->addCC($address);
}
foreach ($bcc as $address) {
$mail->addBCC($address);
}
$mail->Subject = $subject;
$mail->Body = $body;
$mail->send();
}
PHP 对 属性 名称区分大小写,因此更改为:
$mail->charSet = 'UTF-8';
至
$mail->CharSet = 'UTF-8';
您可能会认为这是获得体面 IDE 的提示,因为即使没有您 运行 代码,任何优秀的人都会标记此内容。
我正在使用 PHPMailer 6.1.8 发送纯文本邮件。我想用 utf8 编码发送它们,但在 Thunderbird 中,收到的电子邮件在 header:
中仍然有错误的内容类型Content-Type: text/plain; charset=iso-8859-1
我的PHP代码:
function sendMail($subject, $body, $to, $from = 'mail@server1.intranet.lan', array $cc = [], array $bcc = []) {
$mail = new PHPMailer();
$mail->charSet = 'UTF-8';
$mail->setLanguage = 'de';
$mail->isSMTP();
$mail->Host = '****';
$mail->SMTPAuth = true;
$mail->Username = '****';
$mail->Password = '****';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom($from);
$mail->addAddress($to);
foreach ($cc as $address) {
$mail->addCC($address);
}
foreach ($bcc as $address) {
$mail->addBCC($address);
}
$mail->Subject = $subject;
$mail->Body = $body;
$mail->send();
}
PHP 对 属性 名称区分大小写,因此更改为:
$mail->charSet = 'UTF-8';
至
$mail->CharSet = 'UTF-8';
您可能会认为这是获得体面 IDE 的提示,因为即使没有您 运行 代码,任何优秀的人都会标记此内容。