Ошибка SMTP php mailer: не удалось подключиться к узлу SMTP - PullRequest
0 голосов
/ 18 ноября 2018

Я разместил свой сайт на Plesk Hosting и работал над отправкой контактной формы.Установил PHP Mailer с помощью composer.Во-первых, я пытался отправить электронную почту, используя SMTP-сервер Gmail, она работала нормально. Во-вторых, я пытался отправить электронную почту, используя SMTP-сервер веб-хостинга. Это не работает для меня

$mail->Host = 'webmail.abc.in';      //host
$mail->SMTPAuth = false;              
$mail->Username = '******@abc.in';    
$mail->Password = '*******';              
$mail->SMTPSecure = 'tls';
$mail->Port = 25;      

. Я тестировал сервер SMPT, используя SMTPER *.1005 *.он может отправлять электронную почту, используя те же учетные данные.

Я не знаю, где проблема ..

Есть ли какая-либо другая библиотека, кроме phpmailer ??

Ответы [ 3 ]

0 голосов
/ 18 ноября 2018

Это пример кода, который я использую с Gmail.Протестировал его с веб-хостингом SMTP и также работал.

`           $mailMsg = ADD_MAIL_MESSAGE_HERE;
            $mailto = ADD_TO_ADDRESS_HERE;
            $mail = new PHPMailer\PHPMailer\PHPMailer();
            $mail->IsSmtp();
            $mail->SMTPDebug = 0;
            $mail->SMTPAuth = true;
            $mail->SMTPSecure = 'ssl';
            $mail->Host = 'smtp.gmail.com';
            $mail->Port = 465;
            $mail->IsHTML(true);
            $mail->CharSet = 'UTF-8';
            $mail->Username = ADD_USERNAME_HERE;
            $mail->Password = ADD_PASSWORD_HERE;
            $mail->SetFrom(ADD_FROM_ADDRESS_HERE);
            //-------------------------------------------
            $mail->Subject = ADD_MAIL_SUBJECT_HERE;
            $mail->Body = $mailMsg;
            $mail->AddAddress($mailto);
            $mail->SMTPOptions = array(
                'ssl' => array(
                    'verify_peer' => false,
                    'verify_peer_name' => false,
                    'allow_self_signed' => true
                )
            );
`
0 голосов
/ 19 ноября 2018

Вы используете общий хостинг с Plesk? Если да, то это может быть проблема блокировки порта (точную причину вы получите только в почтовом журнале). Глядя на ваш код, я вижу, что при локальном тестировании SMTP вы используете порт 25, а в случае Gmail - 465.

По умолчанию большинство провайдеров общего хостинга блокируют исходящее SMTP-соединение через порт 25. Это сделано для защиты сети и инфраструктуры от спама. Если это так, то вам нужно связаться с их поддержкой, чтобы разблокировать порт или использовать какой-либо режим отправки электронной почты без порта. Значит, вместо подключения по SMTP, подключайтесь через HTTP API для отправки электронных писем.

0 голосов
/ 18 ноября 2018
$mail->SMTPAuth = true;

Думаю, все так просто.

Вы сказали, что проверили учетные данные на SMTPer,

Я уверен, что вы установили флажок «Использовать аутентификацию».

Возможно, вы подумали, что можете сделать это ложным, потому что вы не используете SSL,

Но это касается аутентификации пользователя, а не зашифрованной связи.

...