Здравствуйте,
в течение нескольких недель отправка писем с моего экземпляра Discourse не удаётся. Настройки SMTP не менялись, тест с помощью curl всё ещё работает, но заметно медленно. SMTP-сервер нашего хостинг-провайдера (через который мы должны отправлять письма) имеет постоянное время отправки в 7 секунд.
cat testmail | curl -vvv --url 'smtp://smtp.<HOST>:587' --mail-from mail@<DOMAIN> --mail-rcpt <ME> --user "mail@<DOMAIN>:<PW>" -T -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying <IP>...
* Connected to smtp.<HOST> (<IP>) port 587 (#0)
< 220 mailproxy1.<HOST> Dovecot ready.
> EHLO ecm2
< 250-mailproxy1.<HOST>
< 250-8BITMIME
< 250-AUTH PLAIN LOGIN
< 250-BURL imap
< 250-ENHANCEDSTATUSCODES
< 250-SIZE
< 250-STARTTLS
< 250 PIPELINING
> AUTH PLAIN
< 334
> xxxxxx=
0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0< 235 2.7.0 Authentication successful
0 0 0 0 0 0 0 0 --:--:-- 0:00:07 --:--:-- 0> MAIL FROM:<mail@<DOMAIN>>
< 250 2.1.0 Ok
> RCPT TO:<<ME>>
< 250 2.1.5 Ok
> DATA
< 354 End data with <CR><LF>.<CR><LF>
} [89 bytes data]
100 89 0 0 0 89 0 11 --:--:-- 0:00:07 --:--:-- 20< 250 2.0.0 Ok: queued as 356C3288C85
100 89 0 0 0 89 0 11 --:--:-- 0:00:07 --:--:-- 26
* Connection #0 to host smtp.<HOST> left intact
Я сравнил это с нашим внутренним почтовым сервером, где отправка занимает менее 1 секунды на письмо. 7 секунд от хостинг-провайдера не были бы большой проблемой, но я не смог найти настройку, позволяющую увеличить (по-видимому, жёстко заданный?) таймаут в 5 секунд. Параметры open_timeout и, как мне кажется, более релевантный read_timeout, также отображаются в тестовом интерфейсе по адресу /admin/email:
- Время выполнения в контейнере Docker совпадает с результатами локального теста или теста на хосте Docker.
- Письма, отправленные через cURL, доставляются корректно (после ожидания 7 секунд + мгновение).
- По соображениям конфиденциальности, обычные обходные пути, такие как SendGrid, Mailgun и т. д., к сожалению, не подходят.
- Возможно, переход на
ActionMailerверсии 7.0.x стал причиной этой проблемы?- rails/actionmailer/CHANGELOG.md at v7.0.3.1 · rails/rails · GitHub
-
Устанавливает значение по умолчанию 5 для параметров
open_timeoutиread_timeoutв настройках SMTP.
Буду благодарен за любые идеи о том, как настроить read_timeout.

