أواجه صعوبة حقًا في جعل حاوية mail-receiver تعمل بشكل موثوق. لقد وصلت إلى النقطة التي تعمل فيها كما هو مقصود للردود المرسلة من حساب GMail الشخصي الخاص بي، لكنها ترفض رسائل البريد الإلكتروني المرسلة من تطبيق الويب الخاص بمكتب 365 الخاص بصاحب العمل. لا يمكنني تحديد ما إذا كانت هذه مشكلة تكوين من جانبي أو شيء غريب حول كيفية توجيه صاحب العمل للبريد الإلكتروني.
أنا جديد في النظر إلى مخرجات ./launcher logs mail-receiver، لكنني أعتقد أن هذا المقتطف يوضح التسلسل المعتاد للأحداث أثناء فشل التسليم:
Jan 27 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=<me@employer.tld> to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld" from client "mail-server.employer.tld[XX.XXX.XX.XX]"
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6
<22>Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld <22>Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
Jan 27 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120
يبدو أن خادم سياسة spf لا يعمل بناءً على الأسطر الأولى والثانية والنهائية. لا يمكنني العثور على أي شيء تشخيصي حول سبب عدم عمله. لست متأكدًا أيضًا مما إذا كان ضروريًا. رسائل البريد الإلكتروني من GMail تبدو أنها تمر على ما يرام.
أنا أستضيف ذاتيًا على VPS مع Cloudflare DNS والبريد الإلكتروني للمعاملات من Brevo.
لقد لاحظت أيضًا عددًا قليلاً جدًا من الارتدادات غير المتوقعة من مصادر Microsoft 365 لفترة طويلة، مما كان مزعجًا للغاية نظرًا لأن العديد من الشركات تستخدمه. لم أتمكن حتى الآن من تتبع الطرف المصدر للمشكلات.\n\nربما توجد مشكلة في mail-receiver كما تقترح؛ سأكون سعيدًا إذا تم التحقيق في هذا الأمر!
لست متأكدًا مما إذا كان الإعداد الخاص بي، أو إعداد صاحب العمل، أو تطبيق مستلم البريد هو الملام . سأكون ممتنًا بالتأكيد لأي اقتراحات حول كيفية استخلاص المزيد من المعلومات من الحاوية.
ما الذي يشير إليه هذا الخطأ:
Jan 27 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=me@employer.tld to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient “4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld” from client “mail-server.employer.tld[XX.XXX.XX.XX]”
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6
Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld
Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
Jan 27 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120
DiscourseHelper:
Searching
Searching for: postfix policyd-spf exit status 120 server configuration problem connection timed out reason and solution
يبدو أن سجلات الأخطاء لديك تشير إلى مشاكل في postfix و policyd-spf. على وجه التحديد:
حالة الخروج 120 لـ policyd-spf:
يشير هذا عادةً إلى مشكلة في تكوين policyd-spf أو الأذونات. Policyd-SPF يُستخدم للتحقق من صحة رسائل البريد الإلكتروني الواردة بناءً على إطار سياسة المرسل (SPF). حالة الخروج 120 غالبًا ما تعني خطأ في التطبيق أو عدم القدرة على معالجة متطلبات التحقق من SPF.
انتهاء مهلة الاتصال بـ private/policyd-spf:
يحدث هذا عندما لا يتمكن postfix من الاتصال بخدمة policyd-spf، ومن المحتمل بسبب:
مسار غير صحيح أو تكوين غير صحيح لمقبس الاتصال.
عملية spawn لـ policyd-spf غير معدة بشكل صحيح أو فشلت في التهيئة.
رفض RCPT بحالة 451:
يتم رفض عنوان البريد الإلكتروني للمستلم بسبب “مشكلة في تكوين الخادم”. هذا يشير إلى أنه بسبب فشل التحقق من SPF، لا يمكن لـ postfix قبول المستلم.
خطوات الحل:
تحقق من تكوين policyd-spf:
تأكد من أن التكوينات المتعلقة بـ SPF في /etc/postfix/main.cf (أو ما يعادله) تشير إلى خدمة السياسة الصحيحة:
policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/policyd-spf
إذا كان مسار الأمر argv (/usr/bin/policyd-spf) غير صحيح، فقم بتعديله.
تأكد من أن postfix يستخدم policyd-spf بشكل صحيح. في /etc/postfix/master.cf، تحقق من:
smtp inet n - n - - smtpd
-o smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination,check_policy_service=unix:private/policyd-spf
تحقق من أذونات الملفات لـ /etc/postfix ومسارات المقابس.
اختبار SPF:
حاول التحقق يدويًا من سجل SPF باستخدام أدوات خارجية أو عبر سطر الأوامر (dig command):
dig +short txt yourdomain.com
تأكد من صحة سجلات SPF الخاصة ببريدك الإلكتروني.
اتصال المقبس:
تحقق مما إذا كان المقبس private/policyd-spf موجودًا ويمكن الوصول إليه:
ls /var/spool/postfix/private/policyd-spf
# اضبط الأذونات إذا كان الملف موجودًا:
chown postfix:postfix /var/spool/postfix/private/policyd-spf
chmod 770 /var/spool/postfix/private/policyd-spf
أعد ربط أو إنشاء ملف مقبس Unix إذا كان مفقودًا.
أخطاء التكوين:
راجع المعلمات الافتراضية في /etc/policyd-spf/policyd-spf.conf، وتأكد من صحتها مقابل حالة الاستخدام الخاصة بك.
إذا استمرت مواجهة المشكلات بعد تغييرات التكوين، فتواصل مع مزود الاستضافة الخاص بك أو دعم Discourse للتأكد من صحة الخادم وإعدادات الاتصال الصحيحة. يمكنك أيضًا استكشاف المزيد من وثائق مشكلات SPF الخارجية أو منتديات مجتمع postfix/policyd.
لقد جربت ما بوسعي بناءً على هذه الردود، ولكن لا يبدو أن أي شيء يحل المشكلة. أعتقد أن أكثر ما سيكون مفيدًا هو أن يخبرني شخص ما بكيفية الحصول على محتويات تتبعات Python من policyd-spf في ملفات السجل. أي اقتراحات؟ هل هذا مجرد تضليل؟