首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP Mail -发现多个换行符或换行符格式错误

PHP Mail -发现多个换行符或换行符格式错误
EN

Stack Overflow用户
提问于 2015-06-20 00:30:37
回答 4查看 11.3K关注 0票数 4

我们升级了我们的PHP版本,现在收到错误消息“Warning: mail():在additional_header中发现多个或格式错误的换行符”。

我用不同的东西做了实验,但还没有得到任何效果。我很抱歉,因为我不是很熟悉这一切是如何工作的,所以请容忍我。

目标(在早期版本中起作用)是发送基于HTML的消息(has,

标签等),其中包括存在于我们的服务器上的PDF附件。

如果你能给我具体的调整,我将不胜感激!

代码语言:javascript
复制
$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;
}
EN

回答 4

Stack Overflow用户

发布于 2015-07-07 07:17:47

由于https://bugs.php.net/bug.php?id=68776,不再允许多个换行符(或者目前?)。尝试切换到PEAR Mailer、PHPMailer或其他软件。

要发送带有带有"\n\n" ()附件的php邮件,需要多个换行符...

票数 0
EN

Stack Overflow用户

发布于 2016-11-05 15:02:04

尝试使用\\\n而不是\n

票数 0
EN

Stack Overflow用户

发布于 2017-11-05 21:28:54

这是php up灰度变化。PHP mail()函数中的安全风险已被修复,不再允许额外的换行符。

请删除additional_headers参数中的多个换行符。这些被视为“多个或格式错误的换行符”:\r\r、\r\0、\r\n\r\n、\n\n、\n\0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30942998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档