SMTP -> ОШИБКА: не удалось подключиться к серверу: истекло время ожидания соединения (110) Ошибка следующего адреса от: xxxxx@gmail.com ОШИБКА

В контактной форме все работает нормально в localhost. Пока хостинг не работает. Отображение ошибки

**"SMTP -> ERROR: Failed to connect to server: Connection timed out (110) The following From address failed: xxxxx@gmail.com ERROR"** 

Я приложил свою форму кода contact_submit.php

    include_once('class.phpmailer.php');    

   $mail->IsSMTP(); // 
    $mail->Host       = "smtp.gmail.com"; 
    $mail->SMTPDebug  = 1;                    
    $mail->SMTPAuth   = true;                 
    $mail->Host       = "smtp.gmail.com"; 
    $mail->Port       = 587;                    
    $mail->Username   = "xxxx@gmail.com"; 
    $mail->Password   = "xxxx@123";        
    $mail->SMTPSecure = "tls";
    $mail->SetFrom($email, $name);

    $mail->AddReplyTo($email,$name);

    $mail->Subject    = "Contact - xxx";

    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; 

    $mail->MsgHTML($body);
    $mail->AddAddress("xxx@gmail.com","xxx");


    if(!$mail->Send()) 
    {
        echo $mail;
      echo "Mailer Error: " . $mail->ErrorInfo;
    } 
    else
        {
      echo '<META HTTP-EQUIV="Refresh" Content="0; URL=contact.php?id='.$id.'&send=success">';
      exit; 
    }

Я использую phpmailer 5.2.1.

Я связался со стороной хостинга, но я не получаю фактический ответ.

3 ответа

Я считаю, что вы должны подключиться к smtp.gmail.com через порт 465, а не порт 587. Кроме того, требуется SSL. Итак, вы должны иметь:

$mail->Host       = "smtp.gmail.com";      
$mail->Port       = 465;                   
$mail->SMTPSecure = "ssl";                 

Вы можете увеличить время ожидания, добавив в ваш код:

set_time_limit(3600);

а затем указав время ожидания $mail объект как таковой:

$mail->Timeout = 3600;       

У меня была похожая проблема: почта отправлялась правильно с моего локального сервера, но не с моего живого в Интернете. Оказалось, мой хост (Bluehost) заблокировал исходящие соединения через порт 465.

Я нашел замечательное руководство, как это исправить для меня:

  1. В вашей cPanel > Mail найдите раздел MX (MX Entry) и выберите "Удаленный почтовый обменник".
  2. В разделе учетных записей электронной почты cPanel создайте соответствующий адрес электронной почты (не пропустите это)
  3. Не используйте smtp.live.com в качестве хоста smtp. Используйте smtp-хост вашего Shared Linux Hosting smtp. Я не знаю, как вы получите свой. Мой - boxXXXX.bluehost.com.
  4. Установите имя пользователя и пароль, совпадающие с учетной записью электронной почты, которую вы только что настроили в cPanel.
Другие вопросы по тегам