PHP 电子邮件编码?

2022-08-30 12:37:13

我在发送电子邮件时遇到了一些外来字符问题。有人可以建议我该怎么做吗?我怀疑问题可能是三件事之一。

  1. 网页编码不正确。(这是否会影响表单中的 POST 数据?
  2. 邮件功能没有任何编码。因此,程序不知道如何读取它。(最有可能)
  3. 文件本身没有正确的编码,因此会产生问题。(可能不太可能)

还有其他可能的原因吗?

我试图逐个淘汰这些,直到我发现问题。我认为选项2是最有可能的原因。如何向邮件功能添加正确的通用编码?

这就是我目前所拥有的。

$mail_sent = mail($client_email, $title, $message, "From: {$visitor_email}");

我目前知道表单不会发送波兰语或瑞典语字符。

如果有人能指出任何其他可能的原因并告诉我需要使用什么编码来发送电子邮件,我将不胜感激。

多谢。


答案 1

据我所知,PHP不支持UTF-8作为其字符串的默认编码。您需要使用相关的编码/处理函数进行您喜欢的编码。

还要将 a 添加到您的电子邮件标题中,以便电子邮件客户端正确显示字符(或替换为您选择的编码)。Content-Type:text/html;charset=utf-8


答案 2

您没有指定内容的类型和编码。试试这个:

$headerFields = array(
    "From: {$visitor_email}",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
);
$mail_sent = mail($client_email, $title, $message, implode("\r\n", $headerFields));

推荐