Письмо Laravel отправлено, но по-прежнему выдает исключение - PullRequest
0 голосов
/ 04 октября 2019

Я отправляю электронное письмо в laravel следующим образом:

Mail::send('email.email_view', [] , function($message) {

    $message->to('email@gmail.com', 'Receiver Name')
            ->subject('TTTTTT');
});

Представление "email.email_view" содержит только это:

test this

Что происходит, когда электронное письмо отправляетсяи я получаю его в папке «Входящие», но все равно он выдает это исключение:

local.ERROR: Соединение с tcp: //mail.myserver.net: 2525 Тайм-аут {"исключение": "[объект] (Swift_TransportException (код: 0): Соединение с tcp: //mail.myserver.net: 2525 Истекло время ожидания в /home/public_html/test/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php: 473, Swift_IoException (код: 0): Соединение с tcp: //mail.myserver.net: 2525 Тайм-аут по /home/public_html/test/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php: 166) [stacktrace]

Если вам нужно (stacktrace), скажите мне, где разместить его для вас, ребята, я понимаю, что для этого есть онлайн-инструменты?.

Почему это происходит? Как предотвратить отправку электронных писем при возникновении исключениягрубый процесс?

1 Ответ

1 голос
/ 27 октября 2019

Отслеживание ошибок показывает, что тайм-аут происходит до того, как сокет завершит чтение из.

https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/StreamBuffer.php#L159

По умолчанию 15 seconds достаточно, чтобы промежуток времени между чтением отдельных пакетов был достаточнымиз сокетного соединения, открытого с почтовым сервером.

https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/StreamBuffer.php#L279

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

В крайнем случае вы можете увеличить время ожидания, разрешив экземпляр Swift_Transport из контейнера службы и вызвав для него метод setTimeout. Сделайте это перед отправкой почты.

https://github.com/laravel/framework/blob/v6.4.0/src/Illuminate/Mail/MailServiceProvider.php#L103

app('swift.transport')->setTimeout(60);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...