0

这是代码:

    <?php
if($_POST["message"]) {
    mail("my@email.com", "Note To Self", $_POST["message"], "From: my@email.com");
    header( "Location: sent.html" );
}
?>

英文字符工作正常,但中文、日文和韩文出现在电子邮件中,如下所示:

ムコ 猫 ê³ ì–'ì ´

基于这个主题:Charset UTF-8 not working on <?php contact form我添加了内容类型和字符集:

<?php
if($_POST["message"]) {
    mail("my@email.com", "Note To Self", $_POST["message"], "From: my@email.com", "Content-Type: text/html; charset=UTF-8");
    header( "Location: sent.html" );
}
?>

但现在我根本没有收到电子邮件。我究竟做错了什么?

4

1 回答 1

0

我已经让它工作了。多个额外的标头应该用 CRLF (\r\n) 分隔。

<?php

$headers = 'From: my@email.com' . "\r\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\r\n";

if($_POST["message"]) {
    mail( "my@email.com", "Note To Self", $_POST["message"], $headers );
    header( "Location: sent.html" );
}
?>
于 2021-01-30T03:13:37.310 回答