تبدو المشكلة في أن الارتدادات التي أتلقاها لا تحتوي على from، وعندما يتم استدعاء واجهة برمجة التطبيقات مثل https://forum.example.com/admin/email/smtp_should_reject.json?from=&to=replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com، فإنها تُرجع 400 مع:
{"errors":["param is missing or the value is empty or invalid: from"]}
إليك المزيد من سجلات mail-receiver:
Nov 03 07:34:53 mail postfix/smtpd[1044]: connect from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]
<19>Nov 3 07:34:53 discourse-smtp-fast-rejection[1048]: Failed to GET smtp_should_reject answer from https://forum.example.com/admin/email/smtp_should_reject.json: 400<22>Nov 3 07:34:53 policyd-spf[1049]: : prepend Received-SPF: None (no SPF record) identity=helo; client-ip=74.91.xxx.108; helo=v-148-29-xxx-192-srvr1.xxx.com; envelope-from=<> ; receiver=mail.forum.example.com Nov 03 07:34:53 mail postfix/smtpd[1044]: NOQUEUE: reject: RCPT from v-108-120-yyy-74-srvr1.xxx.com[74.91.xxx.108]: 450 4.7.1 <replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com>: Recipient address rejected: Internal error, API request failed; from=<> to=<replies+verp-326f6e22828d2543ba65497a47608f13@mail.forum.example.com> proto=ESMTP helo=<v-148-29-xxx-192-srvr1.xxx.com>
ومع ذلك، حتى لو جاء مع from صحيح (بوضع بريدي الإلكتروني هناك)، فإنه يعود بـ:
{"reject":true,"reason":"Mail to this address is not accepted. Check the address and try to send again?"}
لا. نفس بروتوكول SMTP، الصادر يعمل بشكل مثالي، والوارد للمواضيع يصل بشكل مثالي أيضًا، المشكلة هي أن الارتدادات غير مرئية للمنتدى لذلك يستمر في المحاولة وأتعرض للتوبيخ من مزود الاستضافة الخاص بي
أنا أقوم بتمرير هذا إلى #hosting.
الإجابة الرسمية المعتادة لمثل هذه الأمور للأسف هي القول “البريد الإلكتروني صعب”. ستحصل على نتائج أفضل بكثير إذا استخدمت مزود خدمة بريد إلكتروني للمعاملات.
إذا كانت لديك ميزانية، يمكنك النشر في Marketplace أو يمكنني نقل هذا الموضوع إلى هناك لك.
رائع! شكراً لك على التصعيد! كنت يائساً بعض الشيء هههه! سأحاول تعطيل discourse-smtp-fast-rejection (على الرغم من أنني لست متأكداً من كيفية القيام بذلك، ولكن سأبحث وأعود إليك)
إذا كان بإمكانك إزالة هذا السطر من ملف تكوين البريد المستلم postfix:\n\n\nsmtpd_recipient_restrictions = check_policy_service unix:private/policy\n\n\nهذا يجب أن ينجح - لم أختبر هذا ولكن أعتقد أنه سيعمل:\n\npostconf -e \"smtpd_recipient_restrictions =\"\n
أنا أقوم بإنشاء mail-receiver.yaml الخاص بي على هذا النحو (في هذه الأثناء أو إلى الأبد؟ @supermathie)
# هذا هو قالب حاوية استقبال البريد الوارد
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild mail-receiver
##
## كن حذرًا جدًا عند التحرير!
## ملفات YAML حساسة للغاية للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة
base_image: discourse/mail-receiver:release
update_pups: false
expose:
- "25:25" # SMTP
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
## حيث يجب إرسال البريد الإلكتروني إلى منتداك. بشكل عام، لا بأس تمامًا
## في استخدام نفس النطاق الخاص بالمنتدى نفسه هنا.
MAIL_DOMAIN: community.example.com
# قم بإلغاء التعليق على هذه (والحجم أدناه!) لدعم TLS
POSTCONF_smtpd_tls_key_file: /letsencrypt/community.example.com/community.example.com.key
POSTCONF_smtpd_tls_cert_file: /letsencrypt/community.example.com/community.example.com.crt
POSTCONF_smtpd_tls_security_level: may
POSTCONF_myhostname: community.example.com
POSTCONF_mynetworks: "127.0.0.0/8 [::1]/128 [fe80::]/64 172.17.0.0/16"
POSTCONF_smtpd_recipient_restrictions: ""
## عنوان URL الأساسي لهذا المثيل من Discourse.
## سيكون هذا أيًا كان عنوان موقع Discourse الخاص بك. على سبيل المثال،
## https://discourse.example.com. إذا كنت تقوم بإعداد مجلد فرعي،
## تأكد من حساب ذلك (أي https://example.com/forum).
DISCOURSE_BASE_URL: 'https://community.example.com'
## مفتاح API الرئيسي لمنتدى Discourse الخاص بك. يمكنك الحصول عليه من
## علامة التبويب "API" في لوحة الإدارة الخاصة بك.
DISCOURSE_API_KEY: <YOURKEY>
## اسم المستخدم الذي سيتم استخدامه لمعالجة البريد الإلكتروني الوارد. ما لم يكن لديك
## قمت بإعادة تسمية المستخدم `system`، يجب أن تترك هذا كما هو.
DISCOURSE_API_USERNAME: system
volumes:
- volume:
host: /var/discourse/shared/mail-receiver/postfix-spool
guest: /var/spool/postfix
# إلغاء التعليق لدعم TLS
- volume:
host: /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/
guest: /letsencrypt