Smtp_should_reject 400 bad request على nounces

مرحباً!

أواجه نفس المشكلة الموضحة هنا بالضبط: Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver - #482 by Carleas

تبدو المشكلة في أن الارتدادات التي أتلقاها لا تحتوي على 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?"}

لذلك كان سيرفض ذلك أيضًا…

هل فاتني شيء في الإعدادات؟ لا أستطيع فهم الأمر.

إعجاب واحد (1)

مرحباً! عذراً، ولكن يبدو أن موضوعك لم يجد من يتناوله. هل تمكنت من حل مشكلتك بنفسك؟

ما هو مزود البريد الإلكتروني الذي تستخدمه؟

لا، للأسف، لا أتلقى الارتدادات…

أنا أستخدم خادم SMTP من لوحة تحكم سي بانل (cPanel)

ماذا عن مزود البريد الإلكتروني الصادر لديك؟ هل تستخدم Mailgun أو أي مزود بريد إلكتروني للمعاملات آخر؟

لا. نفس بروتوكول SMTP، الصادر يعمل بشكل مثالي، والوارد للمواضيع يصل بشكل مثالي أيضًا، المشكلة هي أن الارتدادات غير مرئية للمنتدى لذلك يستمر في المحاولة وأتعرض للتوبيخ من مزود الاستضافة الخاص بي

أنا أقوم بتمرير هذا إلى #hosting.
الإجابة الرسمية المعتادة لمثل هذه الأمور للأسف هي القول “البريد الإلكتروني صعب”. ستحصل على نتائج أفضل بكثير إذا استخدمت مزود خدمة بريد إلكتروني للمعاملات.
إذا كانت لديك ميزانية، يمكنك النشر في Marketplace أو يمكنني نقل هذا الموضوع إلى هناك لك.

شكراً لوقتك في النظر في هذا الأمر معي !!

إعجاب واحد (1)

مرحباً DevTeVe،

لقد راجعت الكود المعني وأعتقد أنك على حق - أعتقد أن كود smtp_should_reject قد يرفض رسائل الارتداد والردود بشكل غير صحيح.

سأقوم بتصعيد هذا الأمر داخلياً.

في هذه الأثناء، إذا قمت بتعطيل مرشح سياسة discourse-smtp-fast-rejection، فهل يسمح ذلك بتدفق البريد؟

إعجابَين (2)

رائع! شكراً لك على التصعيد! كنت يائساً بعض الشيء هههه! سأحاول تعطيل discourse-smtp-fast-rejection (على الرغم من أنني لست متأكداً من كيفية القيام بذلك، ولكن سأبحث وأعود إليك)

إعجاب واحد (1)

إذا كان بإمكانك إزالة هذا السطر من ملف تكوين البريد المستلم postfix:\n\n\nsmtpd_recipient_restrictions = check_policy_service unix:private/policy\n\n\nهذا يجب أن ينجح - لم أختبر هذا ولكن أعتقد أنه سيعمل:\n\npostconf -e \"smtpd_recipient_restrictions =\"\n

إعجاب واحد (1)

نجاح!

أنا أقوم بإنشاء 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
إعجاب واحد (1)

دعنا نذهب مع “في الوقت الحالي” وسنقوم بتحديث هذا الموضوع عندما يكون لدينا المزيد من الأخبار.

3 إعجابات

شكرا جزيلا لك! لم أتوقع حقًا أن يتحرك هذا الأمر أكثر من ذلك، لكنه الآن مثالي وأنا أتلقى جميع الارتدادات الأخرى!

3 إعجابات