PHPMailer 產生警告:stream_socket_enable_crypto():對等憑證不符合
PHP 5.6 中實施的增強安全措施。當嘗試將郵件傳送到某些網域(例如 Dreamhost 託管的網域)時,使用者可能會遇到錯誤:「無法連線到 SMTP 主機。」
進一步調查揭示了憑證驗證的潛在問題。 PHPMailer 記錄「PHP 警告:stream_socket_enable_crypto():對等憑證CN=*.mail.dreamhost.com' 與預期的CN=mx1.sub4.homie.mail.dreamhost.com' 不符。」
要解決對於這個問題,重要的是要了解憑證驗證不是可選的,忽略它會損害安全性。正如 PHPMailer 文件中所述,正確的解決方案是將無效或配置錯誤的憑證替換為有效的憑證。
如果憑證驗證仍然不可協商,但仍然需要訊息傳遞,則有可能繞過驗證暫時地。這可以透過設定以下 SMTPOptions 來實現:
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
但是,應謹慎使用此方法,並且僅建議作為臨時措施,直到可以解決正確的證書配置問題。
以上是為什麼 PHPMailer 會產生「stream_socket_enable_crypto():對等憑證不符」警告以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!