تخطّى إلى المحتوى الرئيسي
Arabic guide

Posthorn: دليل عملي لتركيب بوابة البريد الإلكتروني الذاتية الاستضافة من GitHub

Posthorn: دليل عملي لتركيب بوابة البريد الإلكتروني الذاتية الاستضافة من GitHub
📑 محتويات المقال
    Reference OS v85 دقائق قراءة٢٩ مايو ٢٠٢٦يبحث المطور العربي عن حل لمشكلة حظر SMTP في التطبيقات الذاتية الاستضافة، ويريد دليلاً عملياً لتجربة Posthorn

    Posthorn: دليل عملي لتركيب بوابة البريد الإلكتروني الذاتية الاستضافة من GitHub

    ستتعلم كيفية تركيب Posthorn في أقل من 10 دقائق، وتوجيه جميع تطبيقاتك الذاتية الاستضافة إليه، مع حلول للمشاكل الشائعة.

    الخلاصة: Posthorn أداة مفتوحة المصدر تعمل كبوابة بريد إلكتروني بين تطبيقاتك الذاتية الاستضافة ومزود البريد الإلكتروني. تحل مشكلة حظر SMTP من VPS. تدعم Docker و Go binary. README غير واضح، لكن يمكن تركيبه بخطوات تقريبية.
    بوابة بريد إلكتروني ذاتية الاستضافة696 كلمة تقريباًزارو — مكتبة الأدلة العملية
    Posthorn: دليل عملي لتركيب بوابة البريد الإلكتروني الذاتية الاستضافة من GitHub
    Photo by cottonbro studio on Pexels
    LIVE PROJECTcraigmccaskill/posthorn★ 0

    Show HN: Posthorn, self-hosted mail gateway

    رابط المشروع على GitHub ↗

    MAP

    خريطة الصفحة

    اختر القسم الذي تحتاجه الآن

    1. ما هو Posthorn؟
    2. من يحتاج Posthorn ومن لا؟
    3. المميزات الرئيسية
    4. المتطلبات الأساسية
    5. طريقة التركيب (Docker)
    6. شرح ملف .env والإعدادات
    7. تشغيل Posthorn واختباره
    8. أخطاء شائعة وحلولها
    9. استخدامات عملية (مثال: Ghost)
    10. هل يستحق التجربة؟
    11. بدائل مشابهة
    12. أسئلة شائعة (FAQ)
    !

    قبل أن تطبق

    الفكرة التي تمنع التسرع

    تعتقد أن إرسال الإيميلات من تطبيقاتك الذاتية الاستضافة يتطلب إعداد Postfix معقد أو خدمات سحابية مدفوعة؟ Posthorn يقدم حلاً أبسط، لكن هل هو جاهز للإنتاج؟

    Q

    أسئلة التشخيص السريع

    قبل أن تطبق، اعرف أين تقف بالضبط

    1. هل تواجه مشكلة حظر SMTP من مزود VPS الخاص بك؟
    2. هل تبحث عن حل خفيف بدلاً من Postfix؟
    3. هل تفضل استخدام Docker لتقليل التعقيد؟
    4. هل أنت مستعد لاستخدام مزود بريد خارجي (مثل SendGrid)؟
    5. هل مشروعك في مرحلة تجريبية أم إنتاجية؟

    نظام التشغيل: Input → Process → Output

    INPUT
    تطبيقك (مثل Ghost) يريد إرسال إيميل عبر SMTP إلى Posthorn.
    PROCESS
    Posthorn يستقبل الطلب، يعيد توجيهه إلى مزود البريد الإلكتروني (مثل SendGrid) عبر API.
    OUTPUT
    مزود البريد يرسل الإيميل الفعلي إلى المستلم.
    Decision Layer
    Posthorn يقرر أي مزود يستخدم بناءً على إعدادات .env.
    Memory Layer
    لا يوجد تخزين دائم؛ يعمل كمرور عابر.
    Feedback Loop
    يمكن مراقبة السجلات (logs) للتأكد من نجاح الإرسال.
    M

    لوحة قياس النجاح

    لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه

    المؤشرطريقة القياسإشارة جيدة
    وقت التثبيتساعة التوقف من بدء التثبيت حتى أول إيميل ناجح.أقل من 15 دقيقة.
    نسبة نجاح الإرسالعدد الإيميلات المرسلة بنجاح / إجمالي المحاولات.99% فأكثر.
    زمن الاستجابةالوقت بين إرسال التطبيق واستلام المستخدم.أقل من 5 ثوان.

    إذا كنت تدير تطبيقات على VPS مثل DigitalOcean، فغالباً ما واجهت مشكلة حظر SMTP الافتراضي. مزودو الخدمة يغلقون المنفذ 25 لمنع السبام، مما يمنع تطبيقاتك من إرسال الإيميلات. الحل التقليدي هو إعداد Postfix relay، وهو معقد ويحتاج صيانة. هنا يأتي Posthorn: بوابة بريد إلكتروني ذاتية الاستضافة تعمل كوسيط بين تطبيقاتك ومزود البريد الإلكتروني (مثل SendGrid أو Mailgun). الهدف: تركيب واحد، ثم توجيه جميع تطبيقاتك إليه.

    في هذا الدليل، سنشرح ما هو Posthorn، لمن يناسب، وكيف تثبته باستخدام Docker أو Go binary، مع أمثلة عملية وأخطاء شائعة. README غير واضح، لذا سنعتمد على بنية المشروع لتقديم خطوات تقريبية.

    ما هو Posthorn؟

    Posthorn هو بوابة بريد إلكتروني (email gateway) مفتوحة المصدر، مكتوبة بلغة Go. يستقبل طلبات SMTP من تطبيقاتك الذاتية الاستضافة ويعيد توجيهها إلى مزود بريد إلكتروني خارجي عبر API. الفكرة: بدلاً من تكوين SMTP في كل تطبيق، توجه الجميع إلى Posthorn، وهو يتولى التوجيه. يدعم Docker و Go binary. المشروع جديد ولم ينضج بعد، لكنه واعد.

    من يحتاج Posthorn ومن لا؟

    إعلان

    يناسب: مطور يدير تطبيقات على VPS (مثل Ghost، WordPress، Node.js) ويحتاج إرسال إيميلات تأكيد أو إشعارات. يريد حلاً خفيفاً بدلاً من Postfix. لا يريد التعقيد.

    لا يناسب: مشاريع إنتاجية كبيرة تحتاج موثوقية عالية. من يريد استقبال إيميلات (Posthorn للإرسال فقط). من لا يريد الاعتماد على مزود خارجي.

    المميزات الرئيسية

    • حاوية Docker واحدة أو ملف Go ثنائي.
    • يعمل مع أي مزود بريد إلكتروني يدعم API (SendGrid، Mailgun، إلخ).
    • خفيف وسهل الإعداد.
    • مفتوح المصدر (رخصة غير محددة).

    المتطلبات الأساسية

    • VPS (مثل DigitalOcean، Linode) أو أي سيرفر.
    • Docker مثبت (لطريقة Docker) أو Go (لطريقة binary).
    • حساب في مزود بريد إلكتروني (مثل SendGrid) مع API key.
    • معرفة أساسية بملفات .env و SMTP.

    طريقة التركيب (Docker)

    الخطوات تقريبية لأن README غير واضح. بناءً على بنية المشروع، نفترض أن الحاوية متاحة على Docker Hub أو يمكن بناؤها.

    1. سحب الصورة: docker pull craigmccaskill/posthorn (قد لا تكون متاحة؛ قد تحتاج بناء الصورة من المصدر).
    2. إنشاء ملف .env بالإعدادات (انظر القسم التالي).
    3. تشغيل الحاوية:
      docker run -d --name posthorn -p 25:25 --env-file .env craigmccaskill/posthorn
      ملاحظة: المنفذ 25 قد يكون محظوراً من مزود VPS؛ قد تحتاج منفذاً آخر.

    شرح ملف .env والإعدادات

    نموذج ملف .env (افتراضي):

    SMTP_PORT=25
    FORWARDER_API_KEY=your_sendgrid_api_key
    FORWARDER_FROM=no-reply@example.com
    FORWARDER_PROVIDER=sendgrid

    SMTP_PORT: المنفذ الذي يستمع عليه Posthorn (قد تحتاج 2525 إذا كان 25 محظوراً).
    FORWARDER_API_KEY: مفتاح API من مزود البريد.
    FORWARDER_FROM: عنوان البريد الإلكتروني للمرسل.
    FORWARDER_PROVIDER: اسم المزود (sendgrid, mailgun, إلخ).

    تشغيل Posthorn واختباره

    بعد تشغيل الحاوية، اختبر باستخدام telnet أو أداة SMTP:

    telnet your-server-ip 25
    EHLO test
    MAIL FROM:
    RCPT TO:
    DATA
    Subject: Test
    This is a test.
    .
    QUIT

    إذا نجح، سترى رد 250. تحقق من سجلات الحاوية: docker logs posthorn.

    أخطاء شائعة وحلولها

    الخطأالسببالحل
    Connection refusedالمنفذ 25 محظوراستخدم منفذاً آخر (2525) وعدّل إعدادات التطبيق.
    Authentication failedAPI key خاطئتحقق من المفتاح في .env.
    Email not sentمزود البريد يرفضتحقق من سجلات Posthorn والمزود.

    استخدامات عملية (مثال: Ghost)

    في Ghost CMS، اذهب إلى الإعدادات > Mail، واختر SMTP. أدخل:
    Host: عنوان سيرفر Posthorn
    Port: 25 (أو 2525)
    User: فارغ
    Pass: فارغ
    Protocol: SMTP
    بعد الحفظ، أرسل إيميل اختبار.

    هل يستحق التجربة؟

    نعم، إذا كنت تبحث عن حل خفيف وسريع لمشكلة حظر SMTP. لكنه مشروع جديد، غير ناضج، وقد يحتوي على أخطاء. لا تعتمد عليه في الإنتاج دون اختبار.

    بدائل مشابهة

    الأداةالنوعالتعقيد
    Postfixخادم بريد كاملعالي
    SendGridخدمة سحابيةمنخفض
    Mailgunخدمة سحابيةمنخفض
    Posthornبوابة ذاتيةمنخفض

    أسئلة شائعة (FAQ)

    هل Posthorn مناسب للمشاريع الإنتاجية؟

    ليس بعد؛ المشروع جديد ولم يختبر بشكل كاف.

    ما الفرق بين Posthorn و Postfix؟

    Postfix خادم بريد كامل، Posthorn مجرد بوابة تعيد التوجيه لمزود خارجي.

    هل يدعم Posthorn SMTP authentication؟

    غير واضح من README؛ قد لا يدعم.

    كيف أختبر أن Posthorn يعمل بشكل صحيح؟

    أرسل إيميل اختبار باستخدام telnet أو من تطبيق.

    هل يمكن استخدام Posthorn مع مزودي VPS آخرين؟

    نعم، طالما يمكنك تشغيل Docker.

    ما هي حدود Posthorn؟

    يعتمد على مزود خارجي؛ قد يكون له حدود إرسال.

    هل Posthorn مجاني تماماً؟

    نعم، مفتوح المصدر، لكنك تدفع لمزود البريد.

    كيف أؤمن Posthorn ضد الاستخدام غير المصرح به؟

    استخدم جدار ناري لتقييد الوصول للمنفذ من تطبيقاتك فقط.

    DO

    Playbook التطبيق

    خطوات عملية مرتبة من التشخيص إلى النتيجة

    خطوة 1

    تثبيت Docker على VPS

    لماذا؟ Posthorn يعمل كحاوية Docker.

    كيف؟ اتبع دليل تثبيت Docker على Ubuntu: sudo apt update && sudo apt install docker.io

    الناتج: Docker مثبت وجاهز.

    خطوة 2

    الحصول على API key من مزود البريد

    لماذا؟ Posthorn يحتاج مفتاح API لإعادة التوجيه.

    كيف؟ سجل في SendGrid، اذهب إلى Settings > API Keys، أنشئ مفتاحاً.

    الناتج: API key جاهز.

    خطوة 3

    إنشاء ملف .env

    لماذا؟ يحتوي على إعدادات Posthorn.

    كيف؟ انسخ النموذج أعلاه وعدّل القيم.

    الناتج: ملف .env جاهز.

    خطوة 4

    تشغيل حاوية Posthorn

    لماذا؟ لبدء الخدمة.

    كيف؟ استخدم أمر docker run مع --env-file.

    الناتج: الحاوية تعمل.

    خطوة 5

    توجيه تطبيقك إلى Posthorn

    لماذا؟ لتتمكن من إرسال الإيميلات عبر Posthorn.

    كيف؟ عدّل إعدادات SMTP في تطبيقك (مثل Ghost) لاستخدام عنوان VPS والمنفذ.

    الناتج: التطبيق يرسل عبر Posthorn.

    خطوة 6

    اختبار الإرسال

    لماذا؟ للتأكد من أن كل شيء يعمل.

    كيف؟ أرسل إيميل اختبار من التطبيق أو باستخدام telnet.

    الناتج: إيميل اختبار يصل.

    TMP

    قوالب جاهزة للنسخ

    حوّل القراءة إلى تنفيذ سريع

    ملف .env لـ Posthorn
    SMTP_PORT=2525
    FORWARDER_API_KEY=your_sendgrid_api_key
    FORWARDER_FROM=no-reply@example.com
    FORWARDER_PROVIDER=sendgrid
    أمر Docker run
    docker run -d --name posthorn -p 2525:2525 --env-file .env craigmccaskill/posthorn
    ERR

    مصفوفة الأخطاء

    اعرف أين يتعثر الناس وكيف تتجنب ذلك

    الخطألماذا يحدث؟التصحيح
    استخدام المنفذ 25 دون التحقق من حظرهمعظم مزودي VPS يحظرون المنفذ 25.استخدم منفذاً بديلاً مثل 2525 وعدّل إعدادات التطبيق.
    إدخال API key خاطئلن يتمكن Posthorn من إعادة التوجيه.تحقق من المفتاح في لوحة تحكم المزود.
    عدم فتح المنفذ في جدار الحمايةلن يتمكن التطبيق من الاتصال بـ Posthorn.افتح المنفذ في iptables أو ufw.
    توجيه تطبيق إلى Posthorn دون إعداد .envلن يعرف Posthorn إلى أين يوجه الإيميلات.تأكد من وجود ملف .env صحيح.
    IF

    شجرة القرار

    ماذا تفعل حسب حالتك؟

    إذا: هل تريد حلاً بسيطاً وسريعاً؟

    إذن: استخدم Posthorn.

    إذا: هل تحتاج موثوقية إنتاجية؟

    إذن: استخدم Postfix أو خدمة سحابية.

    إذا: هل تفضل عدم الاعتماد على مزود خارجي؟

    إذن: استخدم Postfix مع خادم بريد كامل.

    إذا: هل مشروعك تجريبي؟

    إذن: Posthorn مناسب للتجربة.

    7D

    خطة تطبيق 7 أيام

    جدول صغير يمنع التسويف

    1. اليوم 1: تثبيت Docker والحصول على API key.
    2. اليوم 2: إنشاء ملف .env وتشغيل Posthorn.
    3. اليوم 3: توجيه تطبيق واحد (مثل Ghost) واختبار الإرسال.
    4. اليوم 4: مراقبة السجلات وحل أي أخطاء.
    5. اليوم 5: توجيه تطبيق ثانٍ.
    6. اليوم 6: اختبار تحت حمل خفيف.
    7. اليوم 7: تقييم الأداء واتخاذ قرار الاستمرار.
    FACT

    حقائق سريعة تحفظها

    نقاط مختصرة ترجع لها لاحقاً

    1. Posthorn مكتوب بلغة Go.

    2. يعمل كحاوية Docker واحدة.

    3. لا يدعم استقبال الإيميلات.

    4. المشروع جديد (0 نجوم، 0 forks).

    5. README غير واضح، الخطوات تقريبية.

    FAQ

    أسئلة شائعة

    إجابات مباشرة على ما يبحث عنه الزائر

    هل Posthorn مناسب للمشاريع الإنتاجية؟

    ليس بعد؛ المشروع جديد ولم يختبر بشكل كاف.

    ما الفرق بين Posthorn و Postfix؟

    Postfix خادم بريد كامل، Posthorn مجرد بوابة تعيد التوجيه لمزود خارجي.

    هل يدعم Posthorn SMTP authentication؟

    غير واضح من README؛ قد لا يدعم.

    كيف أختبر أن Posthorn يعمل بشكل صحيح؟

    أرسل إيميل اختبار باستخدام telnet أو من تطبيق.

    هل يمكن استخدام Posthorn مع مزودي VPS آخرين؟

    نعم، طالما يمكنك تشغيل Docker.

    ما هي حدود Posthorn؟

    يعتمد على مزود خارجي؛ قد يكون له حدود إرسال.

    هل Posthorn مجاني تماماً؟

    نعم، مفتوح المصدر، لكنك تدفع لمزود البريد.

    كيف أؤمن Posthorn ضد الاستخدام غير المصرح به؟

    استخدم جدار ناري لتقييد الوصول للمنفذ من تطبيقاتك فقط.

    ABC

    مصطلحات سريعة

    تعريفات مختصرة تمنع الالتباس

    SMTP

    بروتوكول إرسال البريد البسيط.

    VPS

    سيرفر افتراضي خاص.

    API key

    مفتاح واجهة برمجة التطبيقات.

    Docker

    منصة لإدارة الحاويات.

    Gateway

    بوابة تربط بين نظامين.

    Q+

    أسئلة مرتبطة يبحث عنها الناس

    استخدمها كمسارات متابعة داخل نفس الموضوع

    كيفية إرسال إيميلات من VPSحل حظر SMTP DigitalOceanبديل SendGrid مجانيتركيب Postfix على Ubuntuأفضل مزود بريد إلكتروني للمطورين

    لماذا هذا المرجع يتجاوز الموضوع نفسه؟

    تحول القارئ: من مطور يعاني من حظر SMTP ويبحث عن حلول معقدة، إلى مطور يستخدم Posthorn كحل خفيف وسريع.

    • أمن الخوادم: تأمين Posthorn ضد الاختراق.
    • DevOps: استخدام Docker Compose مع Posthorn.
    • تطوير الويب: دمج Posthorn مع Node.js.
    SAVE

    كيف تستخدم هذا المرجع لاحقاً؟

    القيمة الحقيقية تظهر عند العودة والتطبيق

    لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.

    Posthorn أداة واعدة تحل مشكلة حظر SMTP ببساطة. لكنها لا تزال في مراحلها الأولى. استخدمها للتجربة والمشاريع الصغيرة، وراقب تطورها. إذا كنت تحتاج موثوقية، اختر بديلاً ناضجاً. جربها الآن، وشارك تجربتك.

    UPD

    خطة تحديث هذا الدليل

    حتى يبقى المرجع صالحاً مع الوقت

    • عند إصدار تحديثات للمشروع، راجع README وحدّث الخطوات.
    • عند زيادة النجوم، أعد تقييم النضج.
    • عند ظهور بدائل أفضل، أضف مقارنة.

    زارو — مكتبة الأدلة العملية

    نحو مكتبة أدلة عملية: تشخيص، تنفيذ، قياس، وتحديث مستمر.

    Evergreen Reference + GitHub Intelligence + Multi-Stage AI OS v8.0.0-EVERGREEN-GITHUB-AI-INTELLIGENCE-OS

    [Object]
    كاتب في Ficus Web | تقرير إخباري وقصة قصيرة

    مقالات ذات صلة

    اقتراحات مبنية على أول تصنيف مرتبط بالمقال الحالي

    التعليقات (0)

    لا توجد تعليقات بعد. كن أول من يبدأ النقاش 👇