أنا أستخدم NetCore Cloud كمزود بريد إلكتروني ولكني لا أستطيع تمكين استقبال رسائل البريد الإلكتروني أو الرد على رسائل البريد الإلكتروني، هل لديك أي فكرة عن كيفية تحقيق ذلك باستخدام NeCore Cloud Email؟
أنا أعمل مع @Abdelrahman_MoHamed على هذا - ما نعتقد أنه مشكلتنا الأساسية/العائق هو أننا نحاول تكوين netcore لإرسال البريد الإلكتروني للرد (الوارد) إلى discourse للمعالجة.
ما لا يمكننا فهمه هو كيفية إدخال هذه البيانات (البريد الإلكتروني الوارد المُحلل) إلى discourse للمعالجة، أين شاشة التكوين التي نبحث عنها في netcore:
نعتقد أننا نريد إدخال عنوان URL مشابه لهذا:
https://forum.mamapedia.com/admin/email/handle_mail
لكننا مرتبكون لأنه عندما ننظر إلى إعدادات الـ webhooks، يبدو أنها طلبات POST..
أيضًا، نحن نفترض أنه يجب علينا استخدام الـ webhooks لتحقيق هدفنا.
أهلاً بمجتمع Discourse،
أعمل على إعداد وظيفة الرد عبر البريد الإلكتروني لمثيل Discourse الخاص بي، وأحتاج إلى بعض التوضيحات والإرشادات.
إعدادي الحالي
- أستخدم Netcore كمزود البريد الإلكتروني الخاص بي.
- بالنسبة للبريد الوارد، قمت بتكوين قاعدة في Netcore لالتقاط جميع رسائل البريد الإلكتروني التي تطابق التنسيق: reply+*@mydiscourse.com.
- يدعم Netcore إعادة توجيه رسائل البريد الإلكتروني هذه إما إلى:
- عنوان بريد إلكتروني آخر
- خطاف ويب (webhook)
ما جربته
حاولت إعادة توجيه رسائل البريد الإلكتروني هذه إلى نقطة نهاية Discourse التالية:
https://mydiscourse.com/admin/email/handle_mail
للأسف، أدى ذلك إلى حالة 404 Not Found.
أسئلتي
- من يتعامل مع رسائل البريد الإلكتروني الواردة في هذا التكوين؟ هل يجب معالجتها مباشرة بواسطة Discourse، أم يحتاج مزود البريد الإلكتروني إلى إعادة توجيهها بتنسيق معين لكي يتعامل معها Discourse؟
- لاحظت وجود خيار يسمى استقبال البريد المباشر باستخدام mail-receiver. هل سيكون هذا نهجًا أفضل لإعدادي؟
أريد التأكد من معالجة رسائل البريد الإلكتروني الواردة بشكل صحيح لتمكين وظيفة الرد عبر البريد الإلكتروني. هل يمكنك إرشادي إلى الطريقة الصحيحة لإعداد هذا مع Netcore، أو توجيهي إلى الوثائق ذات الصلة؟
شكراً جزيلاً لدعمكم مقدماً!
نقطة واحدة هنا، netcore هو ما كان يعرف سابقًا باسم ‘pepipost’ - لذلك إذا كان هذا يذكرك بشيء ما، فربما يمكن أن يساعد ذلك في توجيهنا في الاتجاه الصحيح.
شكرا مقدما!
أسهل طريقة هي تكوين البريد الإلكتروني الوارد المباشر للمواقع المستضافة ذاتيًا باستخدام Mail-Receiver
أنا متأكد من أن نقطة النهاية التي تستخدمها مخصصة لمعالجة الارتدادات، ولكن قد أكون مخطئًا.
شكراً على ردك، باستخدام هذا الإعداد سيكون لدينا نقطة نهاية يمكننا استخدامها في مزود البريد الإلكتروني لنشر البيانات إليها؟
@pfaffman مفيد جدًا، شكرًا لك. لذا، مع وضع netcore (المعروف أيضًا باسم pepipost) جانبًا، يبدو أنك تقول إنه إذا أردنا:
- إرسال البريد الإلكتروني
- إدارة الارتداد
- معالجة الردود
بغض النظر عما إذا كنا نستخدم mailgun أو sengrid، وما إلى ذلك - يتعين علينا تكوين البريد الإلكتروني الوارد المباشر للمواقع المستضافة ذاتيًا باستخدام Mail-Receiver - هل هذا صحيح؟ أنت تقول إنها “أسهل” طريقة، لذا أنا فضولي، هل هناك طرق أخرى؟
مرة أخرى، أقدر حقًا الرد، لقد كنا/نحن عالقون في هذا الأمر الآن لبضعة أيام…
أيضًا، ننشر هذا في المجتمع العام هنا، نحن نبحث عن تأكيد بأن تكوين البريد الإلكتروني الوارد للتسليم المباشر للمواقع المستضافة ذاتيًا باستخدام Mail-Receiver مطلوب لمعالجة البريد الإلكتروني بالكامل في البيئات المستضافة ذاتيًا.
إذا كان بإمكان أي شخص آخر تأكيد أن هذا مطلوب بالفعل، فسيكون ذلك مفيدًا للغاية.
من الممكن أيضًا تكوين صندوق بريد pop3 يمكن لـ Discourse فحصه. مستقبل البريد أسهل ويسمح باستخدام عناوين عشوائية لصناديق البريد الجماعية أو الفئوية.
شكراً لك @pfaffman - مفيد جداً مرة أخرى. لذا نحن نتحرك للأمام مع مستقبِل البريد، نحن في تثبيت متعدد المواقع. بمجرد الانتهاء، بافتراض أن الأمور تسير على ما يرام، سنعود إلى هنا.
مرحباً @pfaffman ، شكراً لك مرة أخرى على مساعدتك
لقد كنت أحاول إعداد حاوية Discourse mail-receiver لمنتدى الخاص بي ولكني واجهت مشكلة تتعلق برفض البريد عند الاختبار. إليك تفاصيل المشكلة:
-
نطاق المنتدى: test.mamapedia.com (يتم توجيهه عبر Cloudflare)
-
نطاق مستلم البريد: reply.mamapedia.com
-
تفاصيل الخطأ:
عند محاولة اختبار مستلم البريد باستخدام Telnet، أتلقى الخطأ التالي:telnet reply.mamapedia.com 25 Trying 34.122.3.90... Connected to reply.mamapedia.com. Escape character is '^]'. 220 ESMTP server MAIL FROM: <abdohamoda636@gmail.com> 250 2.1.0 Ok RCPT TO: <test@reply.mamapedia.com> 554 5.7.1 <test@reply.mamapedia.com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again.سجلات مستلم البريد: تظهر سجلات حاوية mail-receiver رسالة الرفض التالية:
Dec 17 17:19:12 test-discourse-20241125-173103-mail-receiver postfix/smtpd[139]: NOQUEUE: reject: RCPT from 90.3.122.34.bc.googleusercontent.com[34.122.3.90]: 554 5.7.1 <test@reply.mamapedia.com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again?; from=<abdohamoda636@gmail.com> to=<test@reply.mamapedia.com> proto=SMTP Dec 17 17:19:12 test-discourse-20241125-173103-mail-receiver postfix/smtpd[139]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "test@reply.mamapedia.com" from client "90.3.122.34.bc.googleusercontent.com[34.122.3.90]"ملاحظات:
- تشير رسالة الخطأ في السجلات إلى أن عنوان المستلم “test@reply.mamapedia.com” يتم رفضه.
- يبدو أن المشكلة تتعلق بتكوين postfix أو نوع من القيود التي تمنع قبول البريد.
ما جربته:
- تأكدت من إعداد سجلات DNS (MX) لـ
reply.mamapedia.comبشكل صحيح. - تحققت مرة أخرى من تكوين حاوية mail-receiver وتأكدت من تعيين نطاق
reply.mamapedia.comبشكل صحيح.
ملف تكوين Mial-Receiver
env: LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 LANGUAGE: en_US.UTF-8 ## حيث يجب إرسال البريد الإلكتروني إلى منتدى الخاص بك. بشكل عام، لا بأس تمامًا ## في استخدام نفس النطاق الخاص بالمنتدى هنا. MAIL_DOMAIN: reply.mamapedia.com # uncomment these (and the volume below!) to support TLS POSTCONF_smtpd_tls_key_file: /letsencrypt/reply.mamapedia.com.key POSTCONF_smtpd_tls_cert_file: /letsencrypt/fullchain.cer POSTCONF_smtpd_tls_security_level: may ## عنوان URL الأساسي لهذا مثيل Discourse. ## سيكون هذا أيًا كان عنوان موقع Discourse الخاص بك. على سبيل المثال، ## https://test.mamapedia.com. إذا كنت تقوم بإعداد مجلد فرعي، ## تأكد من حساب ذلك (أي https://example.com/forum). DISCOURSE_BASE_URL: 'https://test.mamapedia.com' ## مفتاح API الرئيسي لمنتدى Discourse الخاص بك. يمكنك الحصول على هذا من ## علامة التبويب "API" في لوحة الإدارة الخاصة بك. DISCOURSE_API_KEY: '#############' ## اسم المستخدم الذي سيتم استخدامه لمعالجة البريد الإلكتروني الوارد. ما لم تكن ## قد قمت بإعادة تسمية المستخدم `system`، يجب أن تترك هذا كما هو. DISCOURSE_API_USERNAME: system volumes: - volume: host: /var/discourse/shared/mail-receiver/postfix-spool guest: /var/spool/postfix # uncomment to support TLS - volume: host: /var/discourse/shared/standalone/letsencrypt guest: /letsencryptسجلات Cloudflare DNS



أقدر أي مساعدة أو رؤى يمكنك تقديمها.
لا أعرف، ولكن مثل هذه الأخطاء هي دائمًا مشكلة في نظام أسماء النطاقات (DNS). وفي كل مرة يكون Cloudflare متورطًا أيضًا. في المرة الأخيرة، منذ وقت طويل جدًا، واجهت خطأ الهروب هذا وكان ذلك بسبب انتهاء مهلة بسبب خادم تم تكوينه بشكل سيء.
لدي هذه الرسالة عند محاولة إرسال رسالة عبر telnet، لكنها تعمل عند الرد على الإشعارات باستخدام مزودي البريد الإلكتروني العاديين.
أقترح عليك تمكين ميزة الرد عبر البريد الإلكتروني وتجربتها في العالم الحقيقي لمعرفة كيف ستسير الأمور.
شكراً لك @Canapin ، ربما أنت على حق، سأحاول الرد على أي بريد إلكتروني وأرى وأتمنى أن ينجح الأمر.
سأقوم بنشر التحديثات.
في حال كان ذلك مفيدًا، إليك محتويات ملف mail-receiver.yml العامل لدي.
أستخدم Cloudflare SSL، لذا بما أن Cloudflare يوفر TLS، فقد تركت جميع أسطر TLS معلقة.
## هذا هو قالب حاوية استقبال البريد الوارد
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة بناء
## /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: mydiscourseinstance.com
# قم بإلغاء التعليق على هذه الأسطر (والوحدة أدناه!) لدعم TLS
# POSTCONF_smtpd_tls_key_file: /letsencrypt/discourse.example.com/discourse.example.com.key
# POSTCONF_smtpd_tls_cert_file: /letsencrypt/discourse.example.com/fullchain.cer
# POSTCONF_smtpd_tls_security_level: may
## عنوان URL الأساسي لهذا المثيل من Discourse.
## سيكون هذا أيًا كان عنوان URL لموقع Discourse الخاص بك. على سبيل المثال،
## https://discourse.example.com. إذا كنت تقوم بإعداد مجلد فرعي،
## تأكد من حساب ذلك (أي https://example.com/forum).
DISCOURSE_BASE_URL: 'https://mydiscourseinstance.com'
## مفتاح API الرئيسي لمنتدى Discourse الخاص بك. يمكنك الحصول عليه من
## علامة التبويب "API" في لوحة الإدارة الخاصة بك.
DISCOURSE_API_KEY: xxxxxxxxxxxxxxxx
## اسم المستخدم الذي سيتم استخدامه لمعالجة البريد الإلكتروني الوارد. ما لم يكن لديك
## قمت بإعادة تسمية المستخدم `system`، يجب عليك ترك هذا كما هو.
DISCOURSE_API_USERNAME: system
volumes:
- volume:
host: /var/discourse/shared/mail-receiver/postfix-spool
guest: /var/spool/postfix
# قم بإلغاء التعليق لدعم TLS
# - volume:
# host: /var/discourse/shared/standalone/letsencrypt
# guest: /letsencrypt
شكراً لكم جميعاً على اقتراحاتكم ودعمكم القيم! @pfaffman ، @Jagster ، @Canapin ، و @denvergeeks — أقدر مساعدتكم. أردت أن أبلغكم بأن الأمر يعمل الآن! لقد قمت بإزالة جميع إعداداتي القديمة، وترقية Docker إلى أحدث إصدار، والتأكد من إضافة سجل MX المطلوب بشكل صحيح. لا يزال Telnet لا يعمل، لكن يمكنني الآن استقبال الردود بنجاح. شكراً مرة أخرى لإرشادي خلال هذه العملية!
يسعدني أن الأمر نجح في النهاية. - أنا فضولي بشأن ما في تكوين postfix يرفض رسائل البريد الإلكتروني عبر telnet (يمكن رفضها لأسباب عديدة، ولكن السبب المذكور يبدو خاطئًا).
صحيح. إنه يقبل فقط البريد الذي تقبله Discourse.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

