Hola,
Desde hace varias semanas, el envío de correos desde mi instancia de Discourse falla. La configuración SMTP no ha cambiado, la prueba con curl sigue funcionando pero es notablemente lenta. El servidor SMTP de nuestro proveedor (que necesitamos para enviar correos) tiene un tiempo de envío constante de 7 segundos.
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
Comparé esto con nuestro servidor de correo interno con menos de 1 segundo por correo. Los 7 segundos del proveedor de correo no serían un problema real, pero no pude identificar una configuración para levantar el tiempo de espera (aparentemente codificado) de 5 segundos. El open_timeout y, a mi parecer, el más relevante read_timeout también son visibles en la interfaz de prueba en /admin/email:
- Los tiempos en el contenedor de la aplicación docker son idénticos a una prueba local o a una prueba en el host docker.
- Los correos enviados por
curlse entregan correctamente (después de la espera de 7 segundos + un instante). - Por razones de privacidad, las soluciones alternativas habituales como sendgrid, mailgun, etc. lamentablemente no son una opción.
- ¿Quizás un cambio a
ActionMailer7.0.x me provocó este problema?- rails/actionmailer/CHANGELOG.md at v7.0.3.1 · rails/rails · GitHub
-
Configura un valor predeterminado de 5 para
open_timeoutyread_timeoutpara la configuración SMTP.
Gracias por cualquier idea sobre cómo configurar read_timeout.

