PHPMailer — решение проблем

  • Проблема с проверкой сертификатов.
    Соединение устанавливается (ответ сервера: 250), но при попытке проверки сертификатов происходит ошибка
Could not access file:
2022-05-19 22:11:43 Connection: opening to mail.company.com:587, timeout=300, options=array()
2022-05-19 22:11:43 Connection: opened
2022-05-19 22:11:44 SMTP INBOUND: "220 mail.company.com ESMTP Postfix (Debian/GNU)"
2022-05-19 22:11:44 SERVER -> CLIENT: 220 mail.company.com ESMTP Postfix (Debian/GNU)
2022-05-19 22:11:44 CLIENT -> SERVER: EHLO mysite.space
2022-05-19 22:11:44 SMTP INBOUND: "250-mail.company.com"
2022-05-19 22:11:44 SMTP INBOUND: "250-PIPELINING"
2022-05-19 22:11:44 SMTP INBOUND: "250-SIZE 52428800"
2022-05-19 22:11:44 SMTP INBOUND: "250-ETRN"
2022-05-19 22:11:44 SMTP INBOUND: "250-STARTTLS"
2022-05-19 22:11:44 SMTP INBOUND: "250-ENHANCEDSTATUSCODES"
2022-05-19 22:11:44 SMTP INBOUND: "250-8BITMIME"
2022-05-19 22:11:44 SMTP INBOUND: "250 DSN"
2022-05-19 22:11:44 SERVER -> CLIENT: 250-mail.company.com250-PIPELINING250-SIZE 52428800250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN
2022-05-19 22:11:44 CLIENT -> SERVER: STARTTLS
2022-05-19 22:11:44 SMTP INBOUND: "220 2.0.0 Ready to start TLS"
2022-05-19 22:11:44 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2022-05-19 22:11:44 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 [/volume1/web/mysite.space/PHPMailer/SMTP.php line 468]
SMTP Error: Could not connect to SMTP host. Connection failed. stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
2022-05-19 22:11:44 CLIENT -> SERVER: QUIT
2022-05-19 22:11:44
2022-05-19 22:11:44
2022-05-19 22:11:44
2022-05-19 22:11:44
2022-05-19 22:11:44
2022-05-19 22:11:44 Connection: closed
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Решение 1:
Добавить следующие строки в ваш файл php

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

Часть кода для большей наглядности

$mail = new PHPMailer;
	$mail->IsSMTP();								
	$mail->Host = 'mail.company.com';		
	$mail->Port = '587';								
	$mail->SMTPAuth = true;							
	$mail->Username = '[email protected]';					
	$mail->Password = '6565dsgsdgsdggd654';

	$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; 	

	$mail->SMTPSecure = 'tls';							
        $mail->setFrom('[email protected]'); 
        $mail->addAddress('[email protected]');    

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

	//$mail->SMTPDebug = 4;
	$mail->CharSet = 'UTF-8';
        $mail->Encoding = '8bit';

Решение 2:
Смените хостинг или используйте чистый Linux, на Linux Server 20 все работает с дефолтными настройками

  • Нет соединения с сервером
    Некоторые особо интересные хостинги запрещают указывать хост в виде: «mail.company.com«
    Пример ошибки
2022-05-19 22:29:22 Connection: opening to mail.company.com:587, timeout=300, options=array ( 'ssl' => array ( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ),)
2022-05-19 22:29:22 Connection failed. Error #2: stream_socket_client(): unable to connect to mail.company.com:587 (Connection refused) [//volume1/web/mysite.space/PHPMailer/SMTP.php line 389]
2022-05-19 22:29:22 SMTP ERROR: Failed to connect to server: Connection refused (111)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Решение:
Укажите значение Host как localhost

$mail = new PHPMailer;
	$mail->IsSMTP();								
	$mail->Host = 'localhost';		
	$mail->Port = '587';								
	$mail->SMTPAuth = true;							
	$mail->Username = '[email protected]';					
	$mail->Password = '6565dsgsdgsdggd654';
Back to Top
Ads Blocker Image Powered by Code Help Pro

Обнаружен блокировщик рекламы

Мы обнаружили, что вы используете расширения для блокировки рекламы. Пожалуйста, поддержите сайт, отключив блокировщик рекламы.

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker

Powered By
CHP Adblock Detector Plugin | Codehelppro