【发布时间】:2012-10-18 21:14:45
【问题描述】:
我的 PHP 代码:
function send ( $from, $to, $subject, $message ) {
$header = array ();
$header [] = "MIME-Version: 1.0";
$header [] = "Content-type: text/html; charset=UTF-8";
$header [] = "From: =?UTF-8?B?" . base64_encode ( $from [ 'name' ] ) . "?= <" . $from [ 'mail' ] . ">";
return mail ( $to, "=?UTF-8?B?" . base64_encode ( $subject ) . "?=", $message, implode ( "\r\n", $header ) );
}
send ( array ( 'name' => 'oóöőuúüűÁÉÍ', 'mail' => 'from@mail.mail' ), 'to@mail.mail', 'oóöőuúüűÁÉÍ', 'oóöőuúüűÁÉÍ.' );
这是可行的,但是... from 不是“oóöőuúüűÁÉÍ”,而是“from@mail.mail”。信源没问题,根据姓名和邮件进行编码。 mail.com账号查看失败,但信源正常。
【问题讨论】:
-
您能否在您的问题中粘贴收到的电子邮件消息的标题?这样,我们就可以检查 From 标头是否正常。
-
来源:来自:=?UTF-8?B?b8Ozw7bFkXXDusO8xbHDgcOJw40=?=
-
其他邮件服务是查看源代码,没关系。 mail.com 只是失败。
-
所以,电子邮件本身通常工作正常,只是一项特定服务无法正确处理它?在这种情况下,我将通过将所有内容与通过其他方式发送到同一服务的已知良好 UTF-8 电子邮件进行比较来开始进行故障排除。找出他们的不同之处以及您可能遗漏的内容。