小编典典

PHP mail()错误:在Additional_header中找到多个或格式错误的换行符

php

突然开始收到上述错误,而未对脚本进行任何更改。

主持人是1and1(我知道…)

该脚本在另一台服务器上仍然可以正常运行,因此我怀疑一定有一些服务器配置更改导致了此问题,尽管主机表示无知。

在Google中,我完全找不到关于上述错误的信息-有人有任何想法吗?如果有帮助,服务器正在运行Apache。


阅读 228

收藏
2020-05-26

共1个答案

小编典典

只是有类似的问题。
它是从天而降的。没有更改PHP代码。

更改内容:PHP已从5.5.25-1升级到5.5.26。

mail()已修复PHP
函数中的安全风险,并且additional_headers不再允许使用多余的换行符。因为多余的换行符表示:现在开始发送电子邮件(并且我们当然不希望有人通过标头后跟邪恶的消息注入一些换行符)。

以前运行良好的功能(例如,仅在标头后添加多余的换行符,甚至将整个消息传递给additional_headers)将不再起作用。

解决方案

  • 清理标题。additional_headers参数中没有多个换行符。这些算作“多个或格式错误的换行符”:\r\r, \r\0, \r\n\r\n, \n\n, \n\0
  • 使用additional_headers仅头。电子邮件消息(是否为多部分,是否为ir,无附件,等等)属于message参数,而不属于标题。
2020-05-26