إعداد خادم البريد: Postfix و Dovecot
دليل شامل لإعداد Postfix MTA و Dovecot IMAP/POP3 وتكوين SSL/TLS ودعم النطاقات الافتراضية وتصفية البريد العشوائي و Docker Mail Server.
جدول المحتويات
إعداد خادم البريد: Postfix و Dovecot
إعداد خادم البريد الخاص بك يمنحك تحكمًا كاملاً في اتصالات البريد الإلكتروني. يغطي هذا الدليل Postfix MTA وخادم Dovecot IMAP/POP3 وتكوين SSL/TLS ودعم النطاقات الافتراضية وإعداد Docker Mail Server.
إدارة خادم البريد معقدة وتتطلب صيانة مستمرة. يجب مراقبة سمعة IP وتصفية البريد العشوائي وتحديثات الأمان بانتظام.
المتطلبات الأساسية
سجلات DNS
# سجل A — عنوان IP لخادم البريد
mail.example.com A 185.x.x.x
# سجل MX — توجيه البريد
example.com MX 10 mail.example.com
# سجل SPF
example.com TXT "v=spf1 mx ip4:185.x.x.x -all"
# سجل DNS العكسي (PTR)
185.x.x.x PTR mail.example.com
يمكن إعداد سجل PTR (DNS العكسي) من لوحة عملاء REXE أو عبر طلب دعم. قد يتم تصنيف الرسائل المرسلة بدون سجل PTR كبريد عشوائي.
إعداد اسم المضيف
sudo hostnamectl set-hostname mail.example.com
echo "185.x.x.x mail.example.com mail" | sudo tee -a /etc/hosts
hostname -f
تثبيت Postfix (MTA)
sudo apt update
sudo apt install postfix postfix-mysql -y
# اختر "Internet Site" أثناء التثبيت
التكوين الأساسي
# /etc/postfix/main.cf
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
inet_interfaces = all
inet_protocols = ipv4
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
# إعدادات TLS
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
smtpd_tls_auth_only = yes
# مصادقة SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
# القيود
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_rbl_client zen.spamhaus.org
message_size_limit = 52428800
منفذ Submission (587)
# /etc/postfix/master.cf
submission inet n - y - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
تثبيت Dovecot (IMAP/POP3)
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd -y
التكوين
# /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
# /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
ssl_min_protocol = TLSv1.2
# /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
شهادة SSL/TLS
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.example.com
Docker Mail Server (بديل)
version: '3.8'
services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
hostname: mail.example.com
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- /etc/letsencrypt:/etc/letsencrypt:ro
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- SSL_TYPE=letsencrypt
restart: always
docker exec -it mailserver setup email add user@example.com
docker exec -it mailserver setup config dkim
docker compose up -d
تصفية البريد العشوائي
sudo apt install spamassassin spamc -y
sudo systemctl enable spamassassin
sudo systemctl start spamassassin
الاختبار والتحقق
sudo systemctl status postfix
sudo systemctl status dovecot
sudo ss -tlnp | grep -E '25|587|993|995'
echo "رسالة اختبار" | mail -s "اختبار" user@example.com
sudo tail -f /var/log/mail.log
openssl s_client -connect mail.example.com:587 -starttls smtp
openssl s_client -connect mail.example.com:993
بعد إعداد خادم البريد، تحقق من تقييم البريد العشوائي على mail-tester.com. تأكد من تكوين SPF وDKIM وDMARC بشكل صحيح.
الخلاصة
إعداد خادم البريد الخاص يوفر تحكمًا كاملاً لكنه يتطلب صيانة منتظمة. مزيج Postfix + Dovecot يقدم حلاً موثوقًا، بينما Docker Mail Server يوفر إدارة أسهل.
مقالات ذات صلة
دليل إزالة البريد الإلكتروني من القائمة السوداء
دليل فحص القائمة السوداء وطلبات الإزالة وإجراءات Spamhaus/Barracuda/SORBS وإدارة سمعة IP.
دليل إعداد SPF و DKIM و DMARC
دليل شامل لإعداد سجلات SPF وتوقيع DKIM وسياسات DMARC وسجلات DNS وأدوات الاختبار لتحسين إمكانية تسليم البريد الإلكتروني وأمانه.