Bonjour,
depuis plusieurs semaines, l’envoi d’e-mails depuis mon instance Discourse échoue. Les paramètres SMTP sont inchangés, le test curl fonctionne toujours mais est notablement lent. Le serveur smtp de notre hébergeur (que nous devons utiliser pour envoyer des e-mails) a un temps d’envoi constant de 7 secondes.
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
J’ai comparé cela à notre serveur de messagerie interne avec moins d’une seconde par e-mail. Les 7 secondes de l’hébergeur de messagerie ne seraient pas un vrai problème, mais je n’ai pas réussi à identifier un paramètre pour lever le délai d’attente (apparemment codé en dur ?) de 5 secondes. L’open_timeout et, me semble-t-il, le read_timeout plus pertinent sont également visibles dans l’interface de test sur /admin/email :
- Les timings dans le conteneur de l’application docker sont identiques à un test local ou à un test sur l’hôte docker.
- Les e-mails envoyés par cURL sont livrés correctement (après l’attente de 7 secondes + un clin d’œil).
- Pour des raisons de confidentialité, les solutions de contournement habituelles comme sendgrid, mailgun, etc. ne sont malheureusement pas une option.
- Peut-être qu’un passage à
ActionMailer7.0.x a déclenché ce problème pour moi ?- rails/actionmailer/CHANGELOG.md at v7.0.3.1 · rails/rails · GitHub
-
Configure un défaut de 5 pour
open_timeoutetread_timeoutpour les paramètres SMTP.
Merci pour toute idée sur la façon de configurer read_timeout.

