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