我们升级了我们的PHP版本,现在收到错误消息“Warning: mail():在additional_header中发现多个或格式错误的换行符”。
我用不同的东西做了实验,但还没有得到任何效果。我很抱歉,因为我不是很熟悉这一切是如何工作的,所以请容忍我。
目标(在早期版本中起作用)是发送基于HTML的消息(has,
标签等),其中包括存在于我们的服务器上的PDF附件。
如果你能给我具体的调整,我将不胜感激!
$sFrom = "[Company Name] <[Our Email]>";
$sReplyTo = "[Our Email]";
$sParams = "-f [Our Email]";
$attachment = chunk_split(base64_encode(file_get_contents($sPath)));
$uid = md5(uniqid(time()));
$sHeaders = "From: ".$sFrom."\n".
"Reply-To: ".$sReplyTo."\n".
"MIME-Version: 1.0\n".
"Content-Type: multipart/mixed; boundary=\"".$uid."\"\n\n".
"This is a multi-part message in MIME format.\n".
"--".$uid."\n".
"Content-Type: text/html; charset='iso-8859-1'\n".
"Content-Transfer-Encoding: 7bit\n\n".
$sMessage."\n\n".
"--".$uid."\n".
"Content-Type: application/pdf; name=\"".$sFileName."\"\n".
"Content-Transfer-Encoding: base64\n".
"Content-Disposition: attachment; filename=\"".$sFileName."\"\n\n".
$attachment."\n\n".
"--".$uid."--";
if (!mail($sTo, $sSubject, "", $sHeaders, $sParams)) {
$bError = true;
}
发布于 2015-07-07 07:17:47
由于https://bugs.php.net/bug.php?id=68776,不再允许多个换行符(或者目前?)。尝试切换到PEAR Mailer、PHPMailer或其他软件。
要发送带有带有"\n\n"
()附件的php邮件,需要多个换行符...
发布于 2016-11-05 15:02:04
尝试使用\\\n
而不是\n
。
发布于 2017-11-05 21:28:54
这是php up灰度变化。PHP mail()函数中的安全风险已被修复,不再允许额外的换行符。
请删除additional_headers参数中的多个换行符。这些被视为“多个或格式错误的换行符”:\r\r、\r\0、\r\n\r\n、\n\n、\n\0。
https://stackoverflow.com/questions/30942998
复制相似问题