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