【问题标题】:=?UTF-8?B??= in Emails sent via php mail problem=?UTF-8?B??= 在 Emails sent via php 邮件问题中
【发布时间】:2011-05-29 22:23:39
【问题描述】:

我有一个网站,在“联系”部分我有一个表格,用户可以填写该表格与我联系。 表单是一个简单的表单,动作是一个php页面。

php代码:

$to = "email@domain.com";

$name=$_POST['name']; // sender name
$email=$_POST['email']; // sender email
$tel= $_POST['tel']; // sender tel
$subject=$_POST['subject']; // subject CHOSEN FROM DROPLIST, ALL TESTED
$text=$_POST['text']; // Message from sender
$text.="\n\nTel:".$tel; // Added to message to show me the telephone nr to the sender at bottom of message

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '-fno-reply@domain.com');

有人可以告诉我为什么这在大多数情况下都有效,但有时我会收到没有文字且主题行显示的电子邮件

=?UTF-8?B??=

我使用outlook express,我已经阅读了这个System.Net.Mail and =?utf-8?B?XXXXX.... Headers 但它没有帮助。

问题不在 Outlook 中,因为当我登录到从中获取 POP3 电子邮件的实际邮件程序时,电子邮件看起来是一样的。

当我在 Outlook 中右键单击并选择“消息来源”时,没有“发件人”信息。

例如,一个好的消息应该是这样的:

主题:=?UTF-8?B?w5Z2cmlndA==?=
MIME 版本:1.0
内容类型:文本/纯文本;字符集=UTF-8
来自:John Doe 

但是,有问题的看起来像这样:

主题:=?UTF-8?B??=
MIME 版本:1.0
内容类型:文本/纯文本;字符集=UTF-8
来自:

就好像信息丢失了一样。

您还应该知道我有一个 VPS,我自己管理它。 我使用 postfix 作为电子邮件服务器,如果这与它有任何关系的话。 但话又说回来,为什么它有时会起作用?

我注意到的另一件事是,有时特殊字符无法正确显示(Outlook 和网络邮件)。

例如,名字“Björkman”在瑞典语中显示为 Björkman,但同样,只是有时。

我希望有人知道这个问题,因为至少对我来说很难找到。

如果您需要更多信息,请告诉我。

谢谢

【问题讨论】:

  • 阅读您在问题中显示的问题的已接受答案。 your subject contains relatively many characters outside the ASCII range. 这意味着您的服务器无法发送带有一些重音或/和特殊字符的主题的邮件。你试过像“Hello world”这样的主题吗?
  • 正如问题所说,这种情况只是偶尔发生。主题行是下拉列表中的 5 个选项之一,所有选项均有效且经过测试。我相信这不是问题。这个问题只是有时会发生。
  • 您也可以尝试在 serverfault 上询问此问题,因为它可能与电子邮件服务器有关
  • 您是否尝试将accept-charset="utf-8" 作为属性添加到联系表单中?你自己能重现这个吗?如果没有,您尝试过哪些浏览器?如果有,var_dump($_POST) 会说什么?您能否在表单中添加一个带有访问者用户代理字符串的隐藏字段,以便查看特定浏览器是否会导致问题?
  • 请注意,即使主题是通过下拉列表选择的。这并不意味着有人可以将没有值的相同 POST 变量提交到同一个 php 页面。

标签: php javascript html email


【解决方案1】:

查看 PHP mail() 时,我看到另一个断行:您不应该使用 \r\n 作为行尾吗?

Björkman 示例看起来很像您的邮件未被识别为 UTF-8 编码。

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 2011-11-30
    • 2017-07-15
    • 1970-01-01
    • 2011-06-05
    • 2011-04-02
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多