تهيئة البريد الإلكتروني الوارد بالتسليم المباشر للمواقع المستضافة ذاتيًا باستخدام Mail-Receiver

مرحباً! لدي مشكلة غريبة حيث قمت بإعداد هذا باتباع الدليل، وهو يعمل بشكل رائع! ومع ذلك، حدث خطأ ما في البريد الإلكتروني الصادر، والذي اعتقدت أنه لن يتأثر بأي من هذا. يعطي Sidekiq الخطأ التالي لكل محاولة بريد إلكتروني (كلها عالقة في قائمة المحاولات) منذ تشغيل mail-receiver:

Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading

تشير عمليات البحث التي أجريتها إلى أن هذا مرتبط بـ TLS بطريقة ما. لقد قمت بإلغاء التعليق على الأسطر المتعلقة بـ TLS في ملف .yml، لكن إعادة التعليق عليها لم تحل المشكلة أيضًا. لقد جربت التعليمات الموجودة في الدليل لحل تعارضات Postfix، ولكن يبدو أنني لا أملك Postfix؟ (الدليل /etc/postfix غير موجود في نسختي، كما أنه لا يتعرف على postfix كخدمة.) ووفقًا لنتائج netstat، فإن docker-proxy فقط هو الذي يستخدم المنفذ 25.

نحن نستخدم Gmail كخدمة SMTP الصادرة، وفي الواقع كنا نستخدم Gmail لاستطلاع POP3 الوارد قبل هذا. لقد حذفت مجموعة من سجلات MX التي تشير إلى Google، لكن الدليل قال أن أفعل ذلك.

هذا هو ملف mail-receiver.yml الخاص بي، مع إخفاء بعض التفاصيل بالطبع:

## هذا هو قالب حاوية استقبال البريد
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /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: discourse.[mydomain].org
# قم بإلغاء التعليق على هذه (والحجم أدناه!) لدعم TLS
  POSTCONF_smtpd_tls_key_file:  /letsencrypt/discourse.[mydomain].org/discourse.[mydomain].org.key
  POSTCONF_smtpd_tls_cert_file:  /letsencrypt/discourse.[mydomain].org/fullchain.cer
  POSTCONF_smtpd_tls_security_level: may


  ## عنوان URL الأساسي لهذا مثيل Discourse.
  ## سيكون هذا هو عنوان URL الخاص بموقع Discourse الخاص بك. على سبيل المثال،
  ## https://discourse.example.com. إذا كنت تقوم بإعداد مجلد فرعي،
  ## تأكد من حساب ذلك (أي https://example.com/forum).
DISCOURSE_BASE_URL: 'https://discourse.[mydomain].org'

  ## مفتاح API الرئيسي لمنتدى Discourse الخاص بك. يمكنك الحصول عليه من
  ## علامة التبويب "API" في لوحة الإدارة الخاصة بك.
  DISCOURSE_API_KEY: [myapikey]

  ## اسم المستخدم الذي سيتم استخدامه لمعالجة البريد الإلكتروني الوارد. ما لم تكن قد
  ## قمت بإعادة تسمية المستخدم `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

تعد تقنية البريد الإلكتروني خارج نطاق خبرتي، لذا أقدر أي نصيحة، حتى لو كانت تشير إلى أنني أغفلت شيئًا غبيًا عند إعداد هذا. شكرًا!

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