PHP - отправка электронной почты через phpMailer с другого сервера

Я пытаюсь отправить электронное письмо от сервер 2 с адресом электронной почты, который открыт в прямом администраторе в сервер 1

я пробовал вот так:

public function send() {
    $mail             = new PHPMailer();
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host       = "mail.server1.com"; // SMTP server
    $mail->SMTPDebug  = true;                     // enables SMTP debug information (for testing)
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->Username   = "[email protected]";
    $mail->Password   = "pass";
    $mail->SetFrom('[email protected]', 'name');
    $mail->AddReplyTo("[email protected]","name");
    $mail->Subject    = $this->subj;
    $mail->MsgHTML($this->msg);
    $address = $this->mailTo;
    $address = explode(',', $address);
    foreach($address as $k=>$v) {
        $mail->AddAddress($v);
    }
    $mail->CharSet = 'UTF-8';
    $mail->Send();
}

эту функцию я запускаю на server2.com.

у меня ошибка:

SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
<br />SMTP Error: Could not connect to SMTP host.

что я могу делать?

Очевидно, вы не можете подключиться к SMTP-серверу. Вы проверили все возможные переменные конфигурации? Что произойдет, если вы установите для $mail->SMTPDebug числовое значение, как описано в github.com/PHPMailer/PHPMailer/wiki/SMTP-Debugging

Nico Haase 10.03.2018 20:20

определите свой порт. А также проверьте, может ли server2 подключиться к server1 через порт, на который вы собираетесь отправлять электронную почту. Порт обычно может быть 25,2525,587. Используйте telnet mail.server1.com 25 для проверки.

Ashish Tiwari 10.03.2018 20:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
339
1

Ответы 1

Возможно, вам не хватает параметров:

$mail->SMTPSecure // can be 'tls' or 'ssl'
$mail->Port // can be '587' to TLS or '465' to SSL

$ mail-> SMTPSecure = "tls"; $ mail-> Порт = 587; и $ mail-> SMTPSecure = "ssl"; $ mail-> Порт = 465; такой же тайм-аут.

kfir 10.03.2018 20:55

Попробуйте учетную запись gmail, чтобы узнать, в коде ли проблема или в Интернете (брандмауэр, ...)

Cava 10.03.2018 21:01

тот же код работал на server2 ... его же хост-компания

kfir 10.03.2018 21:03

Попробуйте посмотреть, жив ли smtp и порт прослушивает 587 на server1

Cava 10.03.2018 21:05

когда я пишу telnet mail.server1.com 587 или telnet mail.server1.com 25, я получаю 220 workd.serverhosting.com ESMTP Exim 4.90_1 Сб, 10 марта 2018 15:07:08 -0500

kfir 10.03.2018 21:07

Другие вопросы по теме