PHPMailer Menjana Amaran: stream_socket_enable_crypto(): Peer Certificate Mismatch
Langkah keselamatan dipertingkat yang dilaksanakan dalam PHP 5.6 telah memberi kesan kepada penggunaan PHPMailer. Apabila cuba menghantar mesej ke domain tertentu, seperti yang dihoskan oleh Dreamhost, pengguna mungkin menghadapi ralat: "Tidak dapat menyambung ke hos SMTP."
Siasatan lanjut mendedahkan isu asas dengan pengesahan sijil. Log PHPMailer "Amaran PHP: stream_socket_enable_crypto(): Sijil rakan sebaya CN=*.mail.dreamhost.com' tidak sepadan dengan jangkaan CN=mx1.sub4.homie.mail.dreamhost.com'."
Untuk menyelesaikannya isu ini, adalah penting untuk memahami bahawa pengesahan sijil bukan pilihan dan mengabaikannya menjejaskan keselamatan. Penyelesaian yang betul, seperti yang dinyatakan dalam dokumentasi PHPMailer, adalah menggantikan sijil yang tidak sah atau salah konfigurasi dengan yang sah.
Jika pengesahan sijil kekal tidak boleh dirunding tetapi penghantaran mesej masih diperlukan, adalah mungkin untuk memintas pengesahan buat sementara waktu. Ini boleh dicapai dengan menetapkan SMTPOptions berikut:
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
Walau bagaimanapun, pendekatan ini harus digunakan dengan berhati-hati dan hanya disyorkan sebagai langkah sementara sehingga konfigurasi sijil yang betul dapat ditangani.
Atas ialah kandungan terperinci Mengapa PHPMailer Menjana Amaran \'stream_socket_enable_crypto(): Peer Certificate Mismatch\' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!