في البريد الإلكتروني المتخطي، أرى \u003creplies+verp-14c9cc6eb915b08d4983c90c744ba4b4@forum.tasat.org\u003e: تم رفض عنوان المرسل: لا يملكه المستخدم admin@tasat.org
أنا جديد في صناعة البريد الإلكتروني. هل يجب أن أزيل “forum.” من سلاسل mail_receiver.yml وأجعل “replies@tasat.org” اسم مستعار للإرسال من “admin@tasat.org”؟
مستقبل البريد مستقل عن Discourse وإرسال البريد الإلكتروني، فهو يعمل ببساطة كخادم بريد إلكتروني بسيط تم تكوينه لاستقبال رسائل البريد الإلكتروني فقط، باستخدام واجهة برمجة تطبيقات Discourse لدفع رسائل البريد الإلكتروني هذه إلى Discourse.
الشيء الوحيد الذي يمكنني التفكير فيه عند إعداده والذي قد يؤثر على الإرسال هو تعيين “الرد عبر عنوان البريد الإلكتروني”، على الرغم من أنه يجب أن يقوم فقط بتعيين “Reply-To” على رسائل البريد الإلكتروني الصادرة ولا يؤثر على عنوان المرسل.
فقط للتأكيد، يبدو أن لديك هذه (من بين أمور أخرى) في app.yml:
إذا كان الأمر كذلك، فهل لا تزال إشعارات البريد الإلكتروني التي لا تقبل الردود تعمل؟ أعتقد أن التحقق من البريد الإلكتروني هو مثال على ذلك، لذا يمكنك محاولة إنشاء حساب ومعرفة ما إذا كان هذا البريد الإلكتروني قد تم إرساله بنجاح.
مع هذا الترتيب، ما يجب أن يحدث للرسائل الإلكترونية التي يمكنها قبول الردود هو أن البريد الإلكتروني المرسل يستخدم: From: admin@tasat.org (عنوان المرسل أيضًا) Reply-To: replies+abc123@forum.tasat.org
عادةً لا يتم التعامل مع Reply-To كجزء من معلومات المرسل، بل يوفر عنوان To افتراضي لاستخدامه عند الرد، ولكن ربما تعامل Hostinger معه على هذا النحو. قد تتمكن من إضافة اسم مستعار للإرسال لـ replies@forum.tasat.org.
أعتقد أن Vultr (أو ربما مجرد تثبيت Docker عندما يكون ufw موجودًا) لديه بعض القواعد التي تمنع الحاويات من التحدث مع بعضها البعض، مما يعني أن مستلم البريد لا يمكنه الاتصال بـ Discourse. ufw allow https يتجاوز ذلك.
على الشبكة الافتراضية، فقط إذا اتصل حاوية مباشرة بحاوية أخرى باستخدام عنوان IP المحلي، فهذا هو عنوان IP المحلي للحاوية نفسها.
عندما يبحث مستلم البريد عن اسم نطاق Discourse الخاص بك، فلن يحصل على عنوان IP المحلي هذا، لذا سيتعين عليه مغادرة شبكة Docker الخاصة به وسيمر عبر ufw مرة واحدة على الأقل للوصول إلى Discourse.
هذا وضع منفصل، وإن كان ذا صلة. هذه اتصالات واردة من الخارج ويضيف Docker قواعد للسماح بمرور المنافذ المكشوفة.
لست ملمًا جدًا بقواعد سلاسل netfilter/iptables ولكن أعتقد أن ما ورد أعلاه يوضح:
إذا كان الاتصال واردًا من docker0، أي من شبكة Docker الافتراضية، فارجع إلى السلسلة السابقة (توقف عن معالجة القواعد في تلك السلسلة).
بخلاف ذلك، إذا كان الاتصال واردًا من أي شيء باستثناء docker0، وإذا كان أيضًا https أو http، فحدد DNAT مما يتسبب في الانتقال إلى سلسلة FORWARD.
لذلك، مع الترتيب الموضح في الموضوع الآخر، ما يحدث هو أنه إذا كان اتصال https أو http واردًا من الخارج، فسيتم توجيهه إلى Docker. أما إذا جاء الاتصال من شبكة Docker، فسيتم إرجاعه ورفضه أو إسقاطه بواسطة سلسلة INPUT.
ما يفعله ufw allow https هو إضافة قاعدة إلى سلسلة INPUT لقبولها. بهذه الطريقة، عندما يتم إرجاع الاتصال إلى سلسلة INPUT كما هو موضح أعلاه، فسيتم قبوله وسيجد Docker يستمع، وسيتم توجيهه في النهاية إلى الحاوية.
شكراً على الردود! اضطررت للانشغال قليلاً، لكنني أعود للبحث في هذا الأمر…
نعم، هذا ما لدي في الوقت الحالي.
عندما أحاول إنشاء حساب الآن، لا يفعل زر الإرسال شيئًا. كما لو أنه يعرف أنه لن ينجح. (ولا يظهر شيء في “تم التخطي” أو في أي مكان آخر.)
تعديل: لقد قمت بتعيين “replies@tasat.org” كاسم مستعار للإرسال لـ admin@tasat.org، وتأكدت من أنه يعمل للإرسال والاستقبال. لقد تأكدت أيضًا من تسليم بريد إلكتروني تم إرساله من عميل خارجي موجه إلى replies+verp-174bc7d8411bc4ec2cfa84c55bd31425@forum.tasat.org
من أجل محاولة شيء ما، قمت بتغيير reply by email address:
من replies+%{reply_key}@forum.tasat.org
إلى replies+%{reply_key}@tasat.org
لكنه لا يغير النتائج.
لا يصل إلى mail-tester. تنتهي جميع محاولات الإرسال الصادرة تحت “تم التخطي” مع مجموعة متنوعة من هذه الرسالة:
553 5.7.1 <replies+verp-8c79cd4e83023bda6df0624c2cacd36e@tasat.org>:
Sender address rejected: not owned by user admin@tasat.org
ربما يكون هذا مثيرًا للاهتمام..؟ عندما أقوم بتشغيل discourse-doctor، يفشل البريد الصادر كما يلي:
==================== MAIL TEST ====================
لإجراء اختبار قوي، احصل على عنوان من http://www.mail-tester.com/
إرسال بريد إلى REDACTED . .
اختبار الإرسال إلى admin@tasat.org باستخدام smtp.titan.email:587،
اسم المستخدم: admin@tasat.org مع مصادقة عادية.
تم الاتصال بخادم SMTP بنجاح.
إرسال إلى admin@tasat.org. . .
لم يتم إرسال البريد.
السبب: 553 5.7.1 <replies+verp-3cc19f7b135e6f56219e030999db9e29@tasat.org>:
Sender address rejected: not owned by user admin@tasat.org
الإرسال مباشرة إلى عنوان replies+ (أو عنوان forum.tasat.org) من عميل بريد إلكتروني يعمل - فهو يتبع الاسم المستعار “replies” وينتهي في صندوق الوارد الخاص بالمسؤول. من أين يأتي الرفض؟
لقد نظرت في قسم المقالة “منع تداخل البريد الإلكتروني للمضيف الصادر”. ليس لدي مسار /etc/postfix - ولكن إليك ناتج netstat الخاص بي:
تعديل كبير - لقد تلقيت رداً من دعم Titan الليلة: “يجب أن يكون عنوان الرد (reply-to) وعنوان المرسل (from) متماثلين وإلا فلن يتم إرسال البريد الإلكتروني.” لذا أعتقد أن كل استكشاف الأخطاء وإصلاحها ذهب هباءً وعليّ البحث عن مضيف بريد إلكتروني جديد لا يفرض هذا المطلب.
الموضوع التالي (المُدرج في أسفل هذا المستند) يحتوي أيضًا على معلومات حول معالجة الارتداد لتلك الخدمات وغيرها:
أنا أستخدم خطة Mailgun flex (بالكامل ضمن الحد المجاني) بنفسي، ولكني أعلم أنه كان هناك ارتباك حول تسعيرهم وربما تغيرت الأمور للمستخدمين الجدد منذ انضمامي. آخر ما رأيته (لا أعرف ما إذا كان لا يزال صحيحًا)، كان من الممكن الانتقال إلى flex بعد انتهاء الفترة التجريبية، فقط كان الأمر غير واضح للغاية.
صحيح.
يمكنك التبديل إلى mailgun flex، على الرغم من أنهم يجعلون الأمر صعبًا لمعرفة ذلك. مرة واحدة في الشهر تقريبًا، أرسل لهم بريدًا إلكترونيًا أسأل فيه عن سبب صعوبة العثور عليه.