【发布时间】:2026-01-04 14:55:01
【问题描述】:
我有一个网站,在“联系”部分我有一个表格,用户可以填写该表格与我联系。 表单是一个简单的表单,动作是一个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,但同样,只是有时。
我希望有人知道这个问题,因为至少对我来说很难找到。
如果您需要更多信息,请告诉我。
【问题讨论】:
标签: linux apache php email postfix-mta