أهلاً،
منذ بضعة أسابيع، فشلت رسائل البريد الإلكتروني المرسلة من مثيل 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
قارنت هذا بخادم البريد الداخلي الخاص بنا مع أقل من ثانية واحدة لكل بريد. الـ 7 ثوانٍ من مستضيف البريد لن تكون مشكلة حقيقية، لكنني لم أتمكن من تحديد إعداد لرفع مهلة الـ 5 ثوانٍ (التي تبدو مبرمجة بشكل ثابت؟). open_timeout، ويبدو لي أن read_timeout الأكثر صلة مرئي أيضًا في واجهة الاختبار في /admin/email:
- التوقيتات في حاوية تطبيق docker متطابقة مع اختبار محلي أو اختبار على مضيف docker.
- رسائل البريد الإلكتروني المرسلة بواسطة cURL يتم تسليمها بشكل صحيح (بعد انتظار 7 ثوانٍ + لمحة عين).
- لأسباب تتعلق بالخصوصية، فإن الحلول البديلة المعتادة مثل sendgrid و mailgun وما إلى ذلك ليست خيارًا للأسف.
- ربما أدى التبديل إلى
ActionMailer7.0.x إلى هذه المشكلة بالنسبة لي؟- rails/actionmailer/CHANGELOG.md at v7.0.3.1 · rails/rails · GitHub
-
يضبط قيمة افتراضية 5 لكل من
open_timeoutوread_timeoutلإعدادات SMTP.
شكراً لأي فكرة حول كيفية تكوين read_timeout.

