PHPMailer émet un avertissement PHP en raison d'un certificat incompatible
Les utilisateurs de PHPMailer peuvent rencontrer un avertissement lors de la connexion à des hôtes SMTP sur PHP 5.6 :
PHP Warning: stream_socket_enable_crypto(): Peer certificate did not match expected
Cet avertissement découle de la sécurité accrue de PHP 5.6, qui vérifie strictement les certificats SSL. L'avertissement suggère que le certificat présenté par l'hôte SMTP ne correspond pas au certificat attendu pour cet hôte.
Cause première :
La non-concordance se produit lorsque l'hôte SMTP présente un certificat qui n'a pas de nom commun (CN) correspondant au nom d'hôte attendu. Par exemple, si vous vous connectez à mx1.sub4.homie.mail.dreamhost.com et que le certificat CN est *.mail.dreamhost.com, PHP émettra l'avertissement.
Solution :
Pour résoudre ce problème, il existe deux approches :
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
Remarque :La désactivation de la vérification du certificat n'est pas recommandée et ne doit être utilisée que comme solution temporaire.
Conclusion :
Le PHP L'avertissement « stream_socket_enable_crypto() : le certificat homologue ne correspond pas à celui attendu » peut être résolu soit en contactant l'hôte SMTP pour mettre à jour son certificat, soit en configurant PHPMailer pour ignorer la vérification du certificat. La solution recommandée consiste à demander à l'hôte SMTP de fournir un certificat valide correspondant au nom d'hôte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!