Hallo,
seit einigen Wochen schlagen E-Mails von meiner Discourse-Instanz fehl. Die SMTP-Einstellungen sind unverändert, der curl-Test funktioniert immer noch, ist aber merklich langsam. Der SMTP-Server unseres Hosters (den wir zum Versenden von E-Mails benötigen) hat eine konsistente Sendezeit von 7 Sekunden.
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
Ich habe dies mit unserem internen Mailserver verglichen, bei dem weniger als 1 Sekunde pro E-Mail benötigt wird. Die 7 Sekunden vom Mail-Hoster wären kein wirkliches Problem, aber ich konnte keine Einstellung finden, um das (scheinbar hartcodierte?) 5-Sekunden-Timeout zu erhöhen. Der open_timeout und, wie es mir scheint, relevantere read_timeout ist auch in der Testoberfläche unter /admin/email sichtbar:
- Die Zeitmessungen im Docker-App-Container sind identisch mit einem lokalen Test oder einem Test auf dem Docker-Host.
- cURL-gesendete E-Mails werden korrekt zugestellt (nach der 7-Sekunden-Wartezeit + einem Wimpernschlag).
- Aus Datenschutzgründen sind die üblichen Workarounds wie SendGrid, Mailgun usw. leider keine Option.
- Vielleicht hat ein Wechsel zu
ActionMailer7.0.x dieses Problem bei mir ausgelöst?- rails/actionmailer/CHANGELOG.md at v7.0.3.1 · rails/rails · GitHub
-
Konfiguriert einen Standard von 5 für
open_timeoutundread_timeoutfür SMTP-Einstellungen.
Vielen Dank für jeden Hinweis, wie read_timeout konfiguriert werden kann.

