Isu Pengesahan SSL PHPMailer: Pengesahan Sijil Gagal
Masalah:
Apabila cuba menghantar e-mel daripada pelayan mel dengan sijil yang ditandatangani sendiri, PHPMailer membuang ralat berikut:
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in class.smtp.php on line 327.
Penyelesaian:
Bermula dengan PHP 5.6, pengesahan sijil SSL mempunyai telah diperkenalkan. Untuk kembali kepada gelagat lama tanpa pengesahan, tetapkan sifat SMTPOptions dalam PHPMailer:
<code class="php">$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );</code>
Nota:
Melumpuhkan pengesahan SSL mempunyai implikasi keselamatan. Tanpa pengesahan, pelakon berniat jahat boleh menyamar sebagai titik akhir yang dipercayai dan melakukan Serangan Man-in-the-Middle. Pertimbangkan risiko ini sebelum menggunakan penyelesaian ini.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Sijil Pengesahan Gagal\' Apabila Menggunakan PHPMailer dengan Sijil Ditandatangani Sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!