لماذا يُخرّب عنوان IP المشترك بريدك الإلكتروني
في استضافة cPanel المشتركة، تتعايش عشرات — وأحياناً مئات — من الحسابات على نفس عنوان IPv4. سمعة العنوان مشتركة: إذا أرسل حساب واحد بريداً عشوائياً، يمكن إدراج كامل نطاق العناوين في قائمة سوداء.
يقيّم المستقبلون كـ Gmail أو Outlook عنوان IP في غلاف SMTP. حين يظهر في قائمة سوداء، تُرفض جميع الرسائل منه. في مصطلحات SMTP، يتلقى عميلك 550 5.7.1 Message rejected أو 421 Try again later مباشرة في سجلات الخادم.
بالنسبة لوكالة تدير محفظة مواقع، التعرض يتناسب مع عدد العملاء على نفس مجموعة IP. هذا ضعف هيكلي في الاستضافة المشتركة يُلغيه relay SMTP على VPS مخصص كلياً.
ما تكسبه مع relay SMTP مخصص
- IPv4 نظيفة وحصرية: أنت المُرسِل الوحيد؛ لديك تحكم كامل في سمعة العنوان.
- توقيع DKIM من المصدر: كل رسالة تحمل توقيعاً مشفراً قابلاً للتحقق.
- SPF وDMARC متوافقان: يمكن توجيه السجلات الثلاثة نحو VPS الخاص بك لاستيفاء متطلبات Google وOutlook.
- relay واحد للمحفظة بأكملها: مواقع الاستضافة المشتركة وتطبيقات Laravel وNode.js وWordPress ترسل جميعها عبر
localhost:587دون تغيير أي منطق تطبيقي. - تحكم SASL لكل حساب: أنشئ هوية منفصلة لكل نطاق عميل — إذا تعرض حساب للاختراق تلغيه دون التأثير على الآخرين.
- استقلالية عن تسعير الأطراف الثالثة: تخرج من الاعتماد على مزودي relay SMTP المُفاتَرين بحجم الإرسال.
- رؤية كاملة: يمنحك
/var/log/mail.logتتبعاً دقيقاً لكل إرسال وارتداد ورفض.
البنية: relay-only لا خادم MX كامل
خادم MX الكامل (كـ Mailcow) يدير صناديق البريد واستقبال البريد الوارد وواجهة البريد على الويب. هذا موضوع مختلف.
relay SMTP يؤدي شيئاً واحداً فقط: إعادة توجيه الإرسال الصادر. لا يستقبل بريداً خارجياً، لا يحتضن صناديق بريد. Postfix المُكوَّن كـ relay-only بسيط: يستمع فقط على localhost، يقبل الاتصالات المصادق عليها عبر SASL، يوقّع بـ OpenDKIM، ويُعيد التوجيه إلى المستقبِل النهائي.
المتطلبات الأساسية قبل البدء
تحقق من هذه النقاط الأربع قبل بدء التثبيت.
1. VPS بذاكرة RAM لا تقل عن 1 جيجابايت.
2. المنفذ 587 مفتوح، ليس المنفذ 25 إطلاقاً. مشغلو VPS السحابي يحجبون المنفذ 25. استخدم المنفذ 587.
3. سجل PTR مُكوَّن على IPv4 الخاصة بـ VPS. يتحقق Gmail وOutlook من هذا السجل ويرفضان الاتصالات من عناوين IP بدون rDNS صالح.
4. نطاق relay مخصص مع وصول إلى DNS الخاص به.
التثبيت والتكوين خطوة بخطوة
تثبيت Postfix وOpenDKIM
apt update && apt install -y postfix opendkim opendkim-tools swaks libsasl2-modulesأثناء التثبيت، اختر Internet Site وأدخل اسم مضيف الـ relay.
تكوين /etc/postfix/main.cf
myhostname = relay.your-agency.com
mydomain = your-agency.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination =
relayhost =
mynetworks = 127.0.0.1/32 [::1]/128 YOUR_SHARED_IP/32
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/relay.your-agency.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/relay.your-agency.com/privkey.pem
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, rejectتوليد ونشر مفاتيح DKIM مع OpenDKIM
mkdir -p /etc/opendkim/keys/your-agency.com
opendkim-genkey -s mail -d your-agency.com -b 2048 -D /etc/opendkim/keys/your-agency.com/
chown -R opendkim:opendkim /etc/opendkim/keys/عدّل /etc/opendkim.conf:
Domain your-agency.com
KeyFile /etc/opendkim/keys/your-agency.com/mail.private
Selector mail
Socket inet:12301@localhostربط Postfix بـ OpenDKIM عبر milter
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301أعد تشغيل كلا الخدمتين:
systemctl enable --now opendkim
systemctl restart postfixنشر سجلات DNS
انشر SPF:
your-agency.com IN TXT "v=spf1 ip4:YOUR_VPS_IP ~all"وDMARC:
_dmarc.your-agency.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; fo=1"اختبار الـ relay والتحقق من التوقيع
swaks --to [email protected] --server localhost:587 \
--auth PLAIN --auth-user [email protected] \
--auth-password YOURPASSWORD \
--tlsتحقق في /var/log/mail.log من سطر status=sent.
تكوين مواقع العملاء لاستخدام الـ relay
عبر cPanel / WHM: فعّل smart host مع IPv4 الخاصة بـ VPS على المنفذ 587.
عبر Laravel في ملف .env:
MAIL_MAILER=smtp
MAIL_HOST=VPS_IP
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=YOURPASSWORD
MAIL_ENCRYPTION=tlsلمحفظة تضم أكثر من 20 موقعاً، أنشئ حساب SASL منفصل لكل نطاق عميل. إذا تعرض أحد العملاء للاختراق، تلغي هوية ذلك العميل فقط دون انقطاع الخدمة عن الآخرين. مع OpenDKIM في وضع SigningTable، يمكن لكل نطاق عميل التوقيع بمفتاح DKIM خاص به.
ما بعد التثبيت: مراقبة السمعة واستباق المشكلات
راقب /var/log/mail.log يومياً. أسطر status=bounced أو status=deferred تستحق قراءة فورية.
اشترك في Postmaster Tools من Google وMicrosoft. يمنحك Google Postmaster Tools لوحة تحكم لسمعة النطاق والـ IP.
تحقق من القوائم السوداء مرة أسبوعياً على الأقل. يتحقق MXToolbox Blacklist Check من عنوانك على أكثر من 100 قائمة.
حدّ معدل الإرسال لكل حساب SASL. توفر Postfix إعدادات smtpd_client_message_rate_limit وanvil_rate_time_unit للحد من عدد الرسائل لكل وحدة زمنية.
استكشاف الأخطاء وإصلاحها: أكثر خمسة أخطاء شيوعاً
1. status=bounced (550 5.7.1) — تحقق من القوائم السوداء على mxtoolbox.com وتحقق من PTR بـ dig -x YOUR_IP.
2. DKIM=fail — تحقق: dig TXT mail._domainkey.your-agency.com. تأكد أن قيمة DNS في سطر واحد.
3. رفض الاتصال بالمنفذ 587 — ufw allow 587/tcp. تحقق من استماع Postfix: ss -tlnp | grep :587.
4. رسائل بتوقيع DKIM صالح ولا تزال في البريد العشوائي — يتطلب توافق DMARC أن يتطابق نطاق From: مع النطاق المشمول بـ DKIM. كوّن محدداً DKIM لكل نطاق عميل.
5. /var/log/mail.log صامت — تحقق: systemctl status postfix.
relay مشترك للمحفظة بأكملها، سمعة تحت السيطرة
في ساعتين من التكوين، يحتضن VPS Start relay Postfix جاهزاً لتوجيه البريد التحويلي لمحفظة عملاء كاملة. تبقى IPv4 المخصصة تحت سيطرتك الحصرية، توقيع DKIM قابل للتحقق، وSPF وDMARC متوافقان منذ الاستخدام الأول.