首頁 >後端開發 >php教程 >PHP mail() 錯誤:為什麼我收到「多個或格式錯誤的換行符號」?

PHP mail() 錯誤:為什麼我收到「多個或格式錯誤的換行符號」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-17 20:17:02563瀏覽

PHP mail() Error: Why Am I Getting

PHP Mail() 錯誤:導航「多個或格式錯誤的換行符」問題

用戶報告遇到了神秘的「多個或格式錯誤的換行符號」使用PHP mail() 函數時,發現「additional_header」錯誤。有趣的是,儘管沒有任何明顯的腳本修改,但還是出現了這個錯誤。

調查帶來了一些令人震驚的啟示。該錯誤似乎是特定於伺服器的,1and1 是罪魁禍首。雖然主機否認責任讓人對他們的伺服器配置產生懷疑,但人們仍懷疑可能是未公開的變更造成了錯誤。

在詳盡的網路搜尋得到有限的結果後,解決方案已經出現。罪魁禍首在於最近 PHP 從 5.5.25-1 升級到 5.5.26。此升級解決了 mail() 函數中的安全漏洞,導致嚴格禁止additional_headers參數中出現多個換行符。

解:

1 。標頭清潔:

  • 檢查標頭中是否有多個換行符(rr、r、rnrn、nn、n)。
  • 消除任何多餘的換行符以確保標頭完整性。

2。標頭分配:

  • 指定 extra_headers 專門用於傳輸標頭資訊。
  • 避免將 extra_headers 用於訊息內容。

遵守這些指南中,使用者可以解決「多個或格式錯誤的換行符」錯誤並恢復 mail() 函數的無縫功能。安全性修補程式(https://bugs.php.net/bug.php?id=68776)和對應的C程式碼差異(http://git.php.net/?p=php-src.git;a= blobdiff ;f=ext/standard/mail.c;h=448013a472a3466245e64b1cb37a9d1b0f7c007e;hp=1ebc8fecb7ef4c266a341cdc701f0686d648b7ef bdf8b0582e30;hpb=eee8b6c33fc968ef8c496db8fb54e8c9d9d5a8f9) 提供了有關此問題的技術細微差別的進一步見解。

以上是PHP mail() 錯誤:為什麼我收到「多個或格式錯誤的換行符號」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn