如何修复用PHP发送的恼人的引用可打印电子邮件?
我发送的电子邮件如下:如何修复用PHP发送的恼人的引用可打印电子邮件?,php,sendmail,Php,Sendmail,我发送的电子邮件如下: $message = "Hello<br/>Something else here.<br/>Bye!"; $html_msg = '<html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head><body bgcolor="#FF
$message = "Hello<br/>Something else here.<br/>Bye!";
$html_msg = '<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head><body bgcolor="#FFFFFF" text="#000000">
'.$message.'
</body>
</html>';
$header = "Date: " . $mail_date . "\n".
"Return-Path: " . $from_email . "\n".
"To: " . $to . "\n".
"From: Me <me@me.com>\n".
"Subject: " . $subject . "\n".
"MIME-Version: 1.0\n".
"Content-Transfer-Encoding: 7bit\n".
sprintf("Content-Type: %s; charset=\"%s\"","text/html","utf-8")."\n\n";
$output = sprintf("%s -oi -t", "/usr/sbin/sendmail");
if(!@$mail = popen($output, "w")) {
echo "Error!";
}
fputs($mail, $header);
fputs($mail, $html_msg);
$result = pclose($mail) >> 8 & 0xFF;
if($result != 0) {
echo "Error!";
}
如何修复此问题?=09是选项卡符号
在您的代码中,您必须使用制表符在结束标头标记前面创建间距,这些制表符显示为=09
$html_msg = '<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
$html\u msg=>
尝试重写为:
$html_msg = '<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
$html\u msg=>
请注意,第二行前面没有前导空格/制表符。为什么您关心HTML邮件的源代码中有什么内容?它将在查看时正确渲染。无论如何,您可能必须在您的
sendmail
配置中修复此问题。如果您需要帮助,请尝试在Serverfault.com或SuperUser.com上询问。我担心如果它将“3D”添加到每个标记中,图像将无法正确显示…=3D
是=/code>字符的引用可打印表示形式。非常感谢!这很有道理。知道为什么要在每个“
之前添加3D吗?我会尽快接受你的答案!它不能使用常规=
,因为这是引用的可打印文件中十六进制代码的前缀。
$html_msg = '<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">