SMTP электронная почта не работает на локальном веб-сайте WordPress Xampp

Я работаю на местном уровне xampp и используя Gmail SMTP plugin чтобы моя контактная форма 7 работала. Когда я пытаюсь отправить тестовое электронное письмо, оно терпит неудачу, и я получаю это сообщение об ошибке:

Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed [C:\xampp1\htdocs\WP\wp-content\plugins\gmail-smtp\PHPMailer\class.smtp.php line 369]
SMTP Error: Could not connect to SMTP host.
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Я изменил настройки функции почты в php.ini а также sendmail конфигурация соответственно. Можете ли вы помочь мне с тем, что проблема может быть здесь?

2 ответа

Эта ошибка возникает, скорее всего, из-за того, что внутренне PHPMailer пытается установить безопасное соединение (SSL/HTTPS), а проверка SSL-сертификата завершается неудачно, поскольку она больше похожа на self-signed certificate (внутри xampp только для разработки).

Попробуйте разрешить небезопасные соединения (без SSL-шифрования - по крайней мере, во время разработки), используя предложенный фрагмент кода

$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

Поскольку сам документ рекомендует не делать эти конфигурации глобально в файле php.ini, вы можете отменить их. И вместо этого используйте параметры времени выполнения (код выше).

Вот мой smtp-клиент для отправки электронной почты с php с сокетом ssl https://github.com/breakermind/PhpMimeParser/blob/master/PhpSmtpSslSocketClient.php вы можете протестировать с помощью php. А вот с примером php mailer https://github.com/fxstar/PhpJsCss/blob/master/SMTPmail/send-phpmailer-smtp-ssl.php или вот другой пример https://github.com/fxstar/PhpJsCss/blob/master/MailerPHP/smtp.php

Другие вопросы по тегам