Использование PHPMailer на Hostgator (тайм-аут при попытке входа в SMTP-сервер)

Решено : Проблема заключалась в том, что для использования службы через hostgator по какой-то причине пользователь должен входить в систему, используя основное имя dsn, а не домен SMTP имя.

Я использовал простую функцию PHP mail () для отправки электронных писем, и она работала нормально, но не требовала входа на сервер SMPT. Когда я перешел в библиотеку PHPMailer , я написал этот код для отправки электронной почты, но у меня время ожидания при попытке выполнить этот вход. Согласно информации от hostgator, SMTP-сервер (с SSL / TSL) находится на порту 465 . Итак, я написал:

$mail = new PHPMailer;

$mail->SMTPDebug  = 3;
$mail->isSMTP();                                       // Set mailer to use SMTP
$mail->Host       = 'mail.mydomain.com';               // Specify main and backup SMTP servers
$mail->SMTPAuth   = true;                              // Enable SMTP authentication
$mail->Username   = 'contact@mydomain.com';            // SMTP username
$mail->Password   = 'pass';                            // SMTP password
$mail->SMTPSecure = 'tls';                             // Enable TLS encryption, `ssl` also accepted
$mail->Port       = 465;                               // TCP port to connect to
$mail->setFrom('contact@mydomain.com', 'my name');
$mail->addAddress('....@gmail.com', 'someone');        // Add a recipient

$mail->addReplyTo('contact@mydomain.com', 'my name');
$mail->isHTML(true);                                   // Set email format to HTML

$mail->Subject = 'subject';
$mail->Body    = 'msg body <b>bold!</b>';
$mail->AltBody = 'Corpo alternativo caso o primeiro não seja exibido';

if(!$mail->send())
{
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}
else
{
    echo 'Message has been sent';
}

Но когда этот файл php вызывается, помимо того, что он не показывает echo , которое я поместил перед кодом, он также ждал 300 секунд, чтобы открыть модальное окно, предупреждающее меня об ошибке тайм-аута. Заранее спасибо.

1
задан 5 May 2016 в 23:58
2 ответа

Думаю, ответ в вашем коде. У вас есть такие строки, как $ mail-> Host = 'mail.mydomain.com'; Не забудьте переключить все это на фактические домены. Вы должны использовать свой домен веб-сайта www.com .

Следующее неверно.

$mail->Host       = 'mail.mydomain.com';               // Specify main and backup SMTP servers

Я не удивлен, что он не отправит. Замените все значения реальными строками, имеющими значение для вашего сайта.

0
ответ дан 4 December 2019 в 10:53

Есть некоторые различия между тем, как работает PHP-функция mail () и PHP Mailer. Функция mail () отправляет почту непосредственно с сервера, на котором расположен сценарий, тогда как ваш хостинг-провайдер может использовать отдельный сервер для отправки своих писем. Поэтому я бы рекомендовал вам установить полное доменное имя SMTP-сервера как $ mail-> Host и убедиться, что свойство $ mail-> SMTPSecure действительно должно быть tls или ssl.

Однако может быть много причин, по которым ваш код не работает, и если вы не разместите точный код, который вы используете (конечно, без пароля), я сомневаюсь, что может быть предоставлена ​​адекватная помощь. Также рекомендуется обратиться в службу поддержки веб-хостинга.

-1
ответ дан 4 December 2019 в 10:53

Теги

Похожие вопросы