我一直在使用一个非常简单的 PHP 函数来构建 HTML / 纯文本电子邮件。它在我看到的 gmail 和许多其他客户中运行良好。
事实证明,@live.com 帐户根本看不到电子邮件内容。
以下是相关代码:
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: server@example.com\r\nReply-To: server@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
//add boundary string and mime type specification
$headers .= "Content-Type: multipart/alternative; boundary=$random_hash\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
//define the body of the message.
$message = "This is a MIME encoded message.\r\n\r\n" .
"--$random_hash\r\n" .
"Content-Type: text/plain; charset=utf-8\r\n" .
//"Content-Transfer-Encoding: 7bit\r\n" .
"\r\nthis is plain text.\r\n\r\n" .
"--$random_hash\r\n" .
"Content-Type: text/html; charset=utf-8\r\n" .
//"Content-Transfer-Encoding: 7bit\r\n" .
"\r\n<html><body>this is wonderful <b>HTML</b> text.</body></html>" .
"\r\n\r\n--$random_hash--\r\n";
mail('someAddress@live.com', 'This is u umlaut: ü', $message, $headers);
如果我只发送 HTML 或纯文本,它将正确显示。
有任何想法吗?
我不想使用额外的库。基本上,我需要的 HTML 就是链接。PHP Multi-Part Text/HTML 上显示空白的答案对我没有帮助。
顺便说一句:u umlaut 在 live.com 收件箱的电子邮件列表中显示不正确,但当我在 live.com 中打开电子邮件时显示正确...