كنت أحاول إرسال بريد إلكتروني بعد تغيير خادم البريد، قبل ذلك كان يعمل بشكل جيد، ولكن الآن لا يمكنني إرسال رسائل البريد الإلكتروني. الأمر هو أن الاتصال يعمل بنسبة 100٪ كما ترى. ولكن لبعض الأسباب، لا يمكنه إرسال البريد الإلكتروني.
عنوان البريد الإلكتروني لاختبار البريد؟ ('n' لتخطي) [community@brohosting.eu]:
إرسال بريد إلى community@brohosting.eu. . .
اختبار الإرسال إلى community@brohosting.eu باستخدام smtppro.zoho.eu:587، اسم المستخدم: info@brohosting.eu مع مصادقة تسجيل الدخول.
تم الاتصال بخادم SMTP بنجاح.
الإرسال إلى community@brohosting.eu. . .
فشل إرسال البريد.
تم الوصول إلى نهاية الملف
تحقق مما إذا كان مزود استضافة VPS الخاص بك قد قام بإلغاء قفل منفذ SMTP (على الرغم من تأكيد الاتصال) … تحقق أيضًا من سجلات خدمة البريد الإلكتروني الخاصة بك بحثًا عن دليل على الطلب.
لا ينبغي أن يكون هناك أي حل لهذا حقًا. لماذا أحتاج إلى تعديل أي شيء، إذا كان الاتصال ناجحًا؟
أيضًا، نعم، لقد وجدت عدة مواضيع كهذه، وأيضًا موضوع واحد حيث قمت بالرد، لكنني لن أعود إلى المنفذ 465 الذي تم إيقافه. من الواضح أن المشكلة تكمن في Discourse أو مكتبة إرسال البريد الخاصة به.
يمكنني المشاركة، ولكن كيف يمكن أن يتم تكوينه بشكل خاطئ إذا كان الاتصال ناجحًا؟
## هذا هو قالب حاوية Docker الخاص بـ Discourse المستقل والمتكامل
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild app
##
## كن حذرًا جدًا عند التحرير!
## ملفات YAML حساسة جدًا للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد أن تشارك Discourse منفذًا مع خادم ويب آخر مثل Apache أو nginx،
## انظر https://meta.discourse.org/t/17247 للحصول على التفاصيل
expose:
- "8080:8080" # http
- "15432:5432" # PostgreSQL
# - "8443:8443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## قم بتعيين db_shared_buffers إلى حد أقصى 25٪ من إجمالي الذاكرة.
## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على ذاكرة الوصول العشوائي المكتشفة، أو يمكنك تجاوزها
#db_shared_buffers: "256MB"
## يمكن أن يحسن أداء الفرز، ولكنه يضيف استخدام الذاكرة لكل اتصال
#db_work_mem: "40MB"
## أي مراجعة Git يجب أن تستخدمها هذه الحاوية؟ (الافتراضي: tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
EMBER_CLI_PROD_ASSETS: 1
# DISCOURSE_DEFAULT_LOCALE: en
## كم عدد طلبات الويب المتزامنة التي يمكن دعمها؟ يعتمد على الذاكرة وأنوى المعالج.
## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على وحدات المعالجة المكتشفة، أو يمكنك تجاوزها
#UNICORN_WORKERS: 3
## TODO: اسم النطاق الذي ستستجيب له مؤسسة Discourse هذه
## مطلوب. لن تعمل Discourse برقم IP عارٍ.
DISCOURSE_HOSTNAME: community.brohosting.eu
## قم بإلغاء التعليق إذا كنت تريد بدء تشغيل الحاوية بنفس
## اسم المضيف (-h option) كما هو محدد أعلاه (الافتراضي "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: قائمة بالبريد الإلكتروني مفصولة بفواصل سيتم جعلها مسؤولة ومطورة
## عند التسجيل الأولي مثال 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'community@brohosting.eu'
## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
# عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
# تحذير الحرف '#' في كلمة مرور SMTP يمكن أن يسبب مشاكل!
DISCOURSE_SMTP_ADDRESS: smtppro.zoho.eu
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: info@brohosting.eu
DISCOURSE_SMTP_PASSWORD: "XXXXXXXXXXXX"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (اختياري، افتراضي صحيح)
DISCOURSE_SMTP_DOMAIN: brohosting.eu
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_NOTIFICATION_EMAIL: community@brohosting.eu
## إذا أضفت قالب Lets Encrypt، قم بإلغاء التعليق أدناه للحصول على شهادة SSL مجانية
# LETSENCRYPT_ACCOUNT_EMAIL: info@brohosting.eu
## عنوان CDN http أو https لمؤسسة Discourse هذه (تم تكوينه للسحب)
## انظر https://meta.discourse.org/t/14857 للحصول على التفاصيل
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## مفتاح عنوان IP الخاص بـ maxmind geolocation للبحث عن عنوان IP
## انظر https://meta.discourse.org/t/-/137387/23 للحصول على التفاصيل
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## الحاوية Docker عديمة الحالة؛ يتم تخزين جميع البيانات في /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## الإضافات هنا
## انظر https://meta.discourse.org/t/19157 للحصول على التفاصيل
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-chat.git
- git clone https://github.com/discourse/discourse-reactions.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-voting.git
- git clone https://github.com/discourse/discourse-chat-integration.git
## أي أوامر مخصصة لتشغيلها بعد البناء
run:
- exec: echo "Beginning of custom commands"
## إذا كنت تريد تعيين عنوان البريد الإلكتروني 'من' للتسجيل الأول الخاص بك، قم بإلغاء التعليق والتغيير:
## بعد الحصول على البريد الإلكتروني الأول للتسجيل، أعد التعليق على السطر. يحتاج فقط إلى التشغيل مرة واحدة.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
الخبر السار هو أنك لم تقض 5 أيام في تصحيح مكتبة smtp كما اقترحت!
(لقد أمضيت للتو اثنتي عشرة ساعة على مدى عدة أيام مؤخرًا في تصحيح الكود الذي أدرج قائمة منسدلة لم تكن تنسدل. لقد سكبت القهوة التي أدرجت القائمة المنسدلة. لقد فحصت القهوة التي أنتجت البيانات للقائمة المنسدلة. قارنتها بكيفية عمل القوائم المنسدلة الأخرى. ثم، وجدت سطرًا صغيرًا من css كنت قد أدرجته والذي جعل الأمر بحيث لم يكن هناك مساحة للقائمة المنسدلة لتنسدل فيها.)
لهذا السبب يتضمن التثبيت القياسي قائمة بموفري البريد الموصى بهم. إذا كنت ترغب في الانحراف عن تلك التوصيات، فإنك تقبل أيضًا التعقيد التقني الإضافي الذي تقدمه. لا تتصرف جميع خوادم البريد بنفس الطريقة، وليس من اختصاص Discourse معالجة ذلك.
ملخص ما سبق هو أنك قمت بتكوين Zoho بشكل غير صحيح. لا يمكن لـ Discourse رؤية التكوين هناك، ويفترض أنك تزوده بمعلومات صحيحة. لو قمت بإعادة تشغيل ./discourse-setup، لكان قد طلب منك مرة أخرى عنوان الإرسال، والذي كنت ستدخله بشكل غير صحيح بسبب هذا التكوين الخاطئ.
يمكننا إنقاذ المستخدمين من الكثير من المشاكل، ولكن نادرًا ما ننقذهم من أنفسهم. في المرة القادمة، أقترح التركيز على الجوانب الأكثر احتمالاً والتحقق المزدوج من التفاصيل في الأنظمة الخارجية، قبل الإصرار على أن المشكلة تكمن في الكود الذي يتم استخدامه لخدمة عشرات الملايين من المستخدمين. من المرجح أن يؤدي ذلك إلى إجابتك بشكل أسرع بكثير.
لكن، ليس من الواضح ما إذا كانت “نهاية الملف قد تم الوصول إليها” ستعني دائمًا “لقد فشلت في تكوين خدمة البريد الخاصة بك لعنوان الإرسال الذي استخدمته” أو أيًا كان ما فعلته لإصلاح الأمور.
اتضح أن هناك الكثير من الأشياء التي يمكن أن تسوء بعد أن يتصل Discourse بنجاح بخادم بريد. إذا كنت تريد رسالة خطأ أفضل، فاجعل Zoho تقدم واحدة بدلاً من مجرد قطع الاتصال.