- كيفية إعداد خادم SMTP على Hetzner لإرسال رسائل البريد الإلكتروني وعدم إرسال رسائل غير مرغوب فيها؟
- التصميم المعماري المقترح والاعتبارات الأولية
- خطوات إعداد خادم الإرسال (هيتزنر)
- DKIM وSPF وDMARC — تكوين نظام أسماء النطاقات (DNS)
- استلام رسائل البريد الإلكتروني على خادم آخر وإدارة الرسائل المرتدة
- تجنب الرسائل المزعجة - أفضل الممارسات
- تحكم في معدلات الإرسال وقوائم الانتظار، وتجنب السمعة السلبية
- الاختبارات والأدوات اللازمة للتحقق من إمكانية التسليم
- مثال كامل للعملية: الإرسال من التطبيق أ باستخدام هيتزنر كخادم وسيط
- نصائح إضافية للسلامة والتشغيل
- أدوات مفتوحة المصدر موصى بها للأتمتة (مجانية)
- رابط لخدمات الشركة (أكثر من 85 موقعًا وخدمة)
- النقطة الأخيرة
كيفية إعداد خادم SMTP على Hetzner لإرسال رسائل البريد الإلكتروني وعدم إرسال رسائل غير مرغوب فيها؟
يشرح هذا الدليل خطوة بخطوة كيفية تطبيق بروتوكول SMTP على خادم سحابي من Hetzner لإرسال رسائل البريد الإلكتروني وتتبع استلامها على خادم آخر. كما يتناول إعدادات نظام أسماء النطاقات (DNS) المهمة (SPF، DKIM، DMARC، PTR)، والمصادقة (SASL/TLS)، وإدارة الرسائل المرتدة وإلغاء الاشتراك، بالإضافة إلى توصيات عملية لتجنب الإدراج في القوائم السوداء.
التصميم المعماري المقترح والاعتبارات الأولية
التصميم المقترح:
- خادم الإرسال (سحابة هيتزنر): التثبيت بوستفيكس + OpenDKIM + OpenDMARC + TLS — مسؤول عن إرسال البريد الإلكتروني (ترحيل SMTP).
- الخادم الوارد (على سبيل المثال، خادم VPS الخاص بك أو الاستضافة): تشير سجلات MX إلى هذا الخادم؛ وهو المسؤول عن تسليم واستقبال الرسائل الواردة (POP/IMAP/Dovecot أو خدمة البريد الإلكتروني الخاصة بك).
- صندوق بريد الارتداد وإلغاء الاشتراك: يتم إرسال الارتدادات إلى عنوان مخصص ويتم معالجة صندوق البريد هذا بواسطة الخادم المستلم.
- المستخدمون/التطبيقات: استخدام مصادقة SMTP (أو التفويض القائم على عنوان IP) المصادقة على خادم Hetzner للسماح له بإعادة التوجيه.
خطوات إعداد خادم الإرسال (هيتزنر)
تثبيت الحزم الأساسية (ديبيان/أوبونتو)
مثال لنظامي التشغيل أوبونتو/ديبيان:
sudo apt update
sudo apt install -y postfix dovecot-core dovecot-imapd opendkim opendkim-tools opendmarc certbot postfix-policyd-spf-python rspamdضبط اسم المضيف و PTR
من الضروري تعيين اسم المضيف على خادم إعادة التوجيه وتسجيل نظام أسماء النطاقات العكسي في لوحة Hetzner.
sudo hostnamectl set-hostname mail.example.comنصائح حول إعداد Postfix: كمية اسم المضيف الخاص بي قم بتعيينه إلى mail.example.com وأدخل القيمة mail.example.com في لوحة Hetzner لعنوان IP العكسي.
تهيئة بروتوكول TLS باستخدام Let's Encrypt
إصدار شهادة والإشارة إليها في إعدادات Postfix:
sudo certbot certonly --standalone -d mail.example.comفي main.cf أضف القيم التالية:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = mayتكوين Postfix الأساسي (مقتطف من ملف main.cf)
مجموعة مختارة من الإعدادات المهمة في main.cf:
myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = localhost
relay_domains =
mynetworks = 127.0.0.0/8
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_helo_required = yesتوضيح: رفض الوجهة غير المصرح بها يمنع استخدام خادمك كخادم ترحيل مفتوح؛ ولا يمكن الترحيل إلا للمستخدمين المصرح لهم أو الأجهزة المعروفة.
تفعيل بروتوكول SASL مع Dovecot (للمصادقة على المستخدمين المرسلين)
في الملف /etc/dovecot/conf.d/10-master.conf قسم مصادقة الخدمة اضبطه على النحو التالي:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}يمكنك استخدام كلمة المرور المحلية، أو قاعدة بيانات SQL، أو LDAP للمصادقة. ثم أعد تشغيل الخدمات.
sudo systemctl restart dovecot postfixDKIM وSPF وDMARC — تكوين نظام أسماء النطاقات (DNS)
إنشاء مفتاح DKIM باستخدام OpenDKIM
مثال على إنشاء مفتاح DKIM على خادم الإرسال:
sudo mkdir /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s mail -D /etc/opendkim/keys/example.comملف mail.txt تم الإنشاء؛ سيتم إضافة محتوى سجل TXT في نظام أسماء النطاقات (DNS): المحدد = بريد إلكتروني → mail._domainkey.example.com.
إعدادات العينة /etc/opendkim.conf (مقتطفات):
Domain example.com
KeyFile /etc/opendkim/keys/example.com/mail.private
Selector mail
AutoRestart yes
Socket local:/var/spool/postfix/opendkim/opendkim.sockوفي /etc/postfix/main.cf يضيف:
milter_default_action = accept
smtpd_milters = unix:/var/spool/postfix/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_miltersسجل SPF
في نظام أسماء النطاقات (DNS) الخاص بالنطاق النموذجي:
example.com. IN TXT "v=spf1 ip4:YOUR_HETZNER_IP include:spf.protection.example ?all"أو بتعبير أدق:
"v=spf1 ip4:YOUR_HETZNER_IP -all"توصية: في بداية جميعهم أو ؟الجميع استخدمه حتى لا تتسبب الأخطاء الأولية في رفض كامل، ثم كن أكثر صرامة.
سجل DMARC
مثال على DMARC في نظام أسماء النطاقات (DNS):
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100; adkim=s; aspf=s"ملحوظة: للبدء، يمكنك p=لا شيء لنطلع على التقارير إذن. p=الحجر الصحي أو p=رفض فعل.
استلام رسائل البريد الإلكتروني على خادم آخر وإدارة الرسائل المرتدة
كيفية ضبط جهاز الإرسال والاستقبال (MX)
مثال على سجل MX في نظام أسماء النطاقات (DNS):
example.com. IN MX 10 mail-receive.example.orgملاحظة: يجب أن يشير سجل MX إلى خادم الاستقبال؛ يستخدم المرسل الخاص بك Hetzner للبريد الإلكتروني الصادر - لذلك يجب تعيين سجل SPF/DKIM لنطاق الإرسال.
تكوين مسار الإرجاع وإدارة الارتداد
بعض النقاط المهمة:
- ينبغي أن يكون مسار الإرجاع محددًا للتعامل مع عمليات الإرجاع؛ ومن الأفضل الإشارة إلى نطاق فرعي مخصص مثل bounce.example.com أشر إلى ذلك.
- يمكنك استخدام بروتوكول VERP لأي بريد إلكتروني:
envelope-from="[email protected]"لتحديد العائد بدقة أكبر.
معالجة الرسائل المرتدة — العملية الموصى بها:
- عنوان
[email protected]قم بإنشائه وقم بتوجيه سجل MX الخاص به إلى الخادم الذي يقوم بمعالجته. - ذلك الخادم مع فيتش ميل / getmail أو قم بجلب صندوق بريد IMAP مباشرة واتخاذ الإجراءات اللازمة باستخدام برامج معالجة الارتداد.
- لتحليل رسائل الارتداد، يمكنك استخدام أدوات مثل جناح أو Mail::Delivery::BounceParser يستخدم.
مثال على معالجة الارتداد باستخدام فلانكر (بايثون)
التثبيت الأول:
pip install flankerمثال بسيط لبرنامج نصي (قراءة من المدخلات القياسية ومعالجتها):
from flanker import mime
from flanker.utils import bounces
import sys
raw = sys.stdin.read()
msg = mime.from_string(raw)
bounce = bounces.parse(raw)
# classify and store bounce info in database or suppression listحسب الفئة ارتداد قوي (أخطاء من فئة 5xx) و ارتداد ناعم (4xx) يمكنك تطبيق سياسات الحذف أو إعادة المحاولة.
تجنب الرسائل المزعجة - أفضل الممارسات
الإعدادات التقنية
- PTR متوافق مع
اسم المضيف الخاص بيو A هو رقم قياسي. - عامل الحماية من الشمس، DKIM، DMARC قم بتفعيل وتوقيع DKIM.
- يتطابق شعار HELO/SMTP مع اسم المضيف.
- تم تفعيل بروتوكول TLS
smtpd_tls_auth_only = yesلمنع الإرسال غير المشفر. - تجنب عناوين IP ذات السجل السيئ واستخدم نظام أسماء النطاقات العكسي (rDNS) المناسب.
سياسات المحتوى والقوائم
- دائماً من الاشتراك المزدوج يُستخدم لقوائم البريد الإلكتروني.
- ينبغي أن تحتوي كل رسالة بريد إلكتروني على رابط إلغاء اشتراك بسيط وواضح؛ في رأس الرسالة
إلغاء الاشتراك في القائمةيستخدم:
List-Unsubscribe: <mailto:[email protected]>, <https://example.com/unsubscribe?email=...>- تهيئة عنوان IP: أرسل مبلغًا صغيرًا من اليوم الأول وقم بزيادته تدريجيًا.
- إزالة أو تصنيف العناوين ذات معدلات الارتداد أو الشكاوى المرتفعة.
- الامتثال لقوانين مثل قانون مكافحة البريد العشوائي (CAN-SPAM) وقانون حماية البيانات العامة (GDPR) للمستخدمين الأوروبيين.
تحكم في معدلات الإرسال وقوائم الانتظار، وتجنب السمعة السلبية
إعدادات تحديد التزامن وتأخير الوجهة في Postfix:
postconf -e "smtp_destination_concurrency_limit = 20"
postconf -e "smtp_destination_rate_delay = 1s"بالنسبة للسياسات الأكثر تعقيدًا من برامج إدارة السياسات مثل إعادة التوجيه، سياسة أو rspamd يستخدم.
إدارة قوائم الانتظار باستخدام أوامر Postfix:
postqueue -p
postsuper -d ALLDeferredالاختبارات والأدوات اللازمة للتحقق من إمكانية التسليم
- لاختبار SMTP من سواكس يستخدم:
swaks --to [email protected] --from [email protected] --server mail.example.com --auth LOGIN --auth-user smtpuser --auth-password smtppass --tls- تحقق من العناوين باستخدام mail-tester.com و MXToolbox للتحقق من القائمة السوداء و SPF/DKIM/DMARC.
- مراقبة السجلات باستخدام:
tail -f /var/log/mail.logتحليل تقارير DMARC من خلال القيم روا و روف يساعدك في العثور على مشاكل التوصيل.
مثال كامل للعملية: الإرسال من التطبيق أ باستخدام هيتزنر كخادم وسيط
- الطلب أ إلى
mail.example.com:587يتواصل مع المستخدممستخدم smtpوكلمة المرور؛ يتم إجراء المصادقة. - بعد التحقق، يقوم خادم Hetzner بإخراج البريد الإلكتروني وتوقيعه بواسطة DKIM؛ كما يتم تعيين SPF و PTR أيضًا.
- في حالة الإرجاع، يتم الإرجاع إلى
[email protected]يتم إرسالها؛ يشير MX الخاص بالارتداد إلى الخادم الذي يقوم بالتحليل. - يقوم التطبيق بقراءة قائمة الحظر وتعطيل العنوان في حالة الارتدادات القوية.
نصائح إضافية للسلامة والتشغيل
- تأكد من أن المنفذ الصادر 25 مفتوح على الخادم (لدى Hetzner أحيانًا قيود على الشبكة).
- لمنع إساءة الاستخدام، يجب أن يكون التحقق من الهوية إلزاميًا؛ لا تحتفظ أبدًا بالخادم كخادم مفتوح للترحيل.
- إرسال السجلات إلى نظام مراقبة (ELK/Graylog) لتحليل ارتفاعات الإرسال أو استجابات الأخطاء.
- في حالة ارتفاع حجم الإرسال، استخدم عنوان IP مخصصًا وقم بتسخين هذا العنوان تدريجيًا.
أدوات مفتوحة المصدر موصى بها للأتمتة (مجانية)
- Postfix (SMTP)
- دوفكوت (SASL/IMAP)
- OpenDKIM / OpenDMARC
- Rspamd للتصفية والتقييم
- fetchmail / getmail لجلب الرسائل المرتدة
- Flanker أو Mail::Delivery::BounceParser لمعالجة الارتدادات
- postfwd / policyd للحصول على معلومات حول الأسعار والسياسات
رابط لخدمات الشركة (أكثر من 85 موقعًا وخدمة)
إذا كنت تبحث عن بنية تحتية ذات وصول واسع النطاق للشبكة ومواقع متنوعة، فيمكنك استخدام الخدمات المناسبة لاختيار أقرب مركز بيانات لجمهورك لتقليل زمن الوصول وتحسين إمكانية التسليم.
- أكثر من 85 موقعًا عالم لاختيار مراكز البيانات.
- خادم سحابي عالي الأداء مزود بعنوان IP مخصص لخدمات التسويق عبر البريد الإلكتروني وخدمات SMTP.
- خادم مضاد لهجمات DDoS، وخوادم افتراضية خاصة متنوعة، ودعم تكوين الشبكة والأمان.
النقطة الأخيرة
إذا كنت مستعدًا للبدء، يمكنك استكشاف خطط خوادم الحوسبة السحابية، وعناوين IP المخصصة، وخدمات إدارة نظام أسماء النطاقات (DNS) والأمان، أو التواصل مع الفريق التقني للحصول على إعدادات مخصصة، وتطبيق بروتوكول DKIM/DMARC، وإدارة عمليات الارتداد. فريق الدعم الفني متوفر لتقديم الإرشادات والمساعدة التقنية.









