دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
ایمیل
  • Folder icon closed Folder open iconMail Server چیست و چگونه کار می‌کند؟
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در سی‌پنل
  • Folder icon closed Folder open iconارسال یک کپی از ایمیل های ارسالی به ایمیل خاص در Mail Enable
  • Folder icon closed Folder open iconآموزش کامل تنظیم رکورد MX دامنه در کنترل‌پنل‌ها
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در پلسک
  • Folder icon closed Folder open iconOX App Suite
    • آموزش استفاده از OX App Suite و امکانات آن
    • تنظیم رکورد MX برای ایمیل‌های OX App Suite
    • تنظیم SPF Record برای جلوگیری از اسپم در OX App Suite
    • فعال‌سازی و شروع فروش سرویس OX App Suite در WHMCS
    • ایجاد و مدیریت Email Alias در OX App Suite
  • Folder icon closed Folder open iconBcc Forward ایمیل های ارسالی به ایمیل خاص در Mail Enable
  • Folder icon closed Folder open iconخطاهای رایج در ارسال و دریافت ایمیل و راهکارهای آن در کنترل پنل دایرکت ادمین (DirectAdmin)
  • Folder icon closed Folder open iconبررسی خطاها در ارسال و دریافت ایمیل
  • Folder icon closed Folder open iconدریافت ایمیل‌ها در Junk سی‌پنل
  • Folder icon closed Folder open iconDKIM و SPF چیست؟
  • Folder icon closed Folder open iconارسال ایمیل تست به mail-tester.com و رفع خطاهای اسپم
  • Folder icon closed Folder open iconدسترسی به وب‌میل در دایرکت ادمین و رفع خطای 403
  • Folder icon closed Folder open iconدسترسی به وب‌میل درسی پنل
  • Folder icon closed Folder open iconدسترسی به وب‌میل در کنترل پنل Plesk و رفع خطای عدم بارگذاری
  • Folder icon closed Folder open iconپاک کردن صف ایمیل
  • Folder icon closed Folder open iconامن کردن WebMail و رفع خطای Not Secure
  • Folder icon closed Folder open iconتنظیمات ایمیل در دایرکت ادمین
  • Folder icon closed Folder open iconتنظیمات ایمیل در سی پنل (cPanel)
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در دایرکت ادمین
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در سی‌پنل (cPanel)
  • Folder icon closed Folder open iconبررسی حجم اکانت ایمیل در پلسک (Plesk روی ویندوز سرور)
  • Folder icon closed Folder open iconریست سرویس Exim
  • Folder icon closed Folder open iconپورت‌های پرکاربرد سرویس ایمیل
  • Folder icon closed Folder open iconWebmail چیست و چه کاربردی دارد؟
  • Folder icon closed Folder open iconمعرفی پروتکل‌های SMTP، IMAP و POP3 و تفاوت آن ها
  • Folder icon closed Folder open iconEmail Header چیست و چه اطلاعاتی در آن قرار دارد؟
  • Folder icon closed Folder open iconرکورد MX چیست و چگونه کار می‌کند
  • Folder icon closed Folder open iconآیا می‌توان چند رکورد MX برای یک دامنه تعریف کرد؟
  • Folder icon closed Folder open iconرکورد A و نقش آن در راه‌اندازی Mail Server
  • Folder icon closed Folder open iconابزارهای بررسی MX، SPF، DKIM و DNS دامنه
  • Folder icon closed Folder open iconemail چیست و ارسال یک ایمیل چگونه انجام می‌شود؟
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در DirectAdmin
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در cPanel
  • Folder icon closed Folder open iconآموزش ساخت ایمیل در Plesk
  • Folder icon closed Folder open iconآموزش تغییر رمز عبور ایمیل در هاست
  • Folder icon closed Folder open iconEmail Quota چیست و چگونه مدیریت می‌شود؟
  • Folder icon closed Folder open iconآموزش مشاهده میزان مصرف فضای ایمیل
  • Folder icon closed Folder open iconآموزش ایجاد Email Forwarder
  • Folder icon closed Folder open iconتفاوت Email Alias، Forwarder و Mailbox
  • Folder icon closed Folder open iconآموزش ساخت پاسخ خودکار برای ایمیل
  • Folder icon closed Folder open iconآموزش تعریف Email Filter در cPanel
  • Folder icon closed Folder open iconآموزش مسدود کردن یک فرستنده در Webmail
  • Folder icon closed Folder open iconآموزش انتقال خودکار ایمیل‌ها به یک پوشه
  • Folder icon closed Folder open iconDefault Email Account در cPanel چیست؟
  • Folder icon closed Folder open iconآموزش بررسی وضعیت ارسال ایمیل در Track Delivery
  • Folder icon closed Folder open iconاطلاعات موردنیاز برای اتصال ایمیل هاست به نرم‌افزارها
  • Folder icon closed Folder open iconتفاوت تنظیمات Secure SSL و Non-SSL ایمیل
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به Outlook
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به Thunderbird
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به گوشی اندروید
  • Folder icon closed Folder open iconآموزش اتصال ایمیل هاست به آیفون
  • Folder icon closed Folder open iconآموزش نصب mailenable و کانفیگ کامل آن
  • Folder icon closed Folder open iconآموزش کانفیگ صحیح exim
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در mailenable
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در cpanel
  • Folder icon closed Folder open iconآموزش تنظیم صحیح relay در directadmin
ایمیل

آموزش تنظیم صحیح relay در directadmin

آموزش تنظیم صحیح relay در directadmin

مقدمه

در سرورهای DirectAdmin، سرویس Exim وظیفه ارسال و دریافت ایمیل را بر عهده دارد. Relay مشخص می‌کند چه کاربران یا سیستم‌هایی اجازه دارند از Mail Server برای ارسال ایمیل به دامنه‌های خارجی استفاده کنند.

در یک تنظیم صحیح، Mail Server باید ایمیل‌های ورودی مربوط به دامنه‌های خودش را بدون SMTP Authentication دریافت کند، اما برای ارسال ایمیل به دامنه‌های خارجی تنها به کاربران احراز هویت‌شده یا سیستم‌های مشخص و مورداعتماد اجازه Relay بدهد.

اگر یک سرور بدون Authentication اجازه ارسال ایمیل میان دو دامنه خارجی را بدهد، به آن Open Relay گفته می‌شود. Open Relay می‌تواند باعث ارسال Spam، افزایش Mail Queue، مصرف منابع و آسیب به Reputation آی‌پی Mail Server شود.

DirectAdmin از Exim استفاده می‌کند و مدیریت تنظیمات آن از طریق CustomBuild انجام می‌شود. برای تغییرات پایدار نیز باید از فایل‌های Custom مربوط به Exim استفاده کرد، نه ویرایش مستقیم /etc/exim.conf.

در این مقاله موارد زیر را بررسی می‌کنیم:

  • Relay در DirectAdmin چیست؟
  • تفاوت Local Delivery و Relay
  • تنظیم SMTP Authentication
  • استفاده صحیح از پورت 587
  • محدودکردن SMTP AUTH روی پورت‌های کاربران
  • اجبار TLS برای Authentication
  • ارسال ایمیل از WordPress و نرم‌افزارها
  • خطای 550 relay not permitted
  • تست Open Relay
  • بررسی Logهای Exim
  • بررسی Mail Queue
  • تنظیم Smarthost برای Relay خروجی
  • نکات امنیتی Relay

Relay در DirectAdmin چیست؟

فرض کنید دامنه زیر روی DirectAdmin میزبانی می‌شود:

example.com

و دو Mailbox زیر وجود دارند:

info@example.com
support@example.com

ارسال پیام زیر یک Local Delivery محسوب می‌شود:

Sender: info@example.com
Recipient: support@example.com

اما ارسال زیر نیازمند Relay است:

Sender: info@example.com
Recipient: user@gmail.com

در حالت دوم، Exim باید پیام را به Mail Server خارجی تحویل دهد و بنابراین باید بررسی کند که فرستنده اجازه Relay داشته باشد.

Exim برای کنترل Relay از ACLها و Authentication استفاده می‌کند و Relay یک Client خارجی به دامنه خارجی نباید بدون مجوز پذیرفته شود.


تفاوت Local Delivery و Relay

نوع ارسالفرستندهگیرندهنیاز به Authentication
داخلیinfo@example.comsupport@example.comمعمولاً خیر
ارسال خارجیinfo@example.comuser@gmail.comبله
دریافت از اینترنتuser@gmail.cominfo@example.comخیر
ارسال WordPressوب‌سایتuser@outlook.comبهتر است بله
SmarthostEximRelay Server خارجیبراساس سرویس

Open Relay چیست؟

Open Relay یعنی یک کاربر ناشناس بتواند سناریوی زیر را انجام دهد:

External sender
       |
       v
DirectAdmin / Exim
       |
       v
External recipient

نمونه:

Sender: attacker@example.net
Recipient: victim@example.org
Authentication: None

اگر Exim این پیام را به مقصد خارجی قبول کند، Relay Server به‌شکل ناامن تنظیم شده است.


ساختار صحیح Relay در DirectAdmin

برای بیشتر سرورها ساختار مناسب به‌شکل زیر است:

Incoming mail:
Port 25
No SMTP authentication required for local recipients

Client submission:
Port 587
SMTP authentication required
STARTTLS enabled

Optional secure submission:
Port 465
SMTP authentication required
Implicit TLS

External-to-external relay:
Denied without authentication

DirectAdmin پورت‌های 25، 465 و 587 را به‌عنوان پورت‌های SMTP مربوط به Exim معرفی می‌کند.


مرحله اول: بررسی وضعیت Exim

ابتدا وضعیت Exim را بررسی کنید:

systemctl status exim

یا:

service exim status

نسخه Exim:

exim -bV

بررسی Process:

ps aux | grep '[e]xim'

اگر سرویس متوقف است:

systemctl restart exim

بررسی پورت‌های SMTP

برای مشاهده پورت‌های Listen شده:

ss -lntp | grep -E ':25|:465|:587'

خروجی مناسب می‌تواند مشابه زیر باشد:

LISTEN 0 128 0.0.0.0:25
LISTEN 0 128 0.0.0.0:465
LISTEN 0 128 0.0.0.0:587

DirectAdmin توصیه می‌کند پورت‌های SMTP موردنیاز از جمله 25، 465 و 587 در Firewall قابل دسترسی باشند.


بررسی تنظیم daemon_smtp_ports

برای مشاهده تنظیم واقعی Exim:

exim -bP daemon_smtp_ports

نمونه:

daemon_smtp_ports = 25 : 465 : 587

اگر پورت 587 فعال نیست، می‌توان تنظیم پایدار را از طریق فایل Custom ایجاد کرد.

فایل را باز کنید:

nano /etc/exim.variables.conf.custom

مقدار موردنیاز را براساس تنظیم فعلی سرور تعریف کنید. برای نمونه DirectAdmin برای فعال‌کردن 25 و 587 ساختار زیر را مستند کرده است:

daemon_smtp_ports = 25 : 587

سپس Exim Configuration را بازسازی کنید:

da build exim_conf

و سرویس را Restart کنید:

systemctl restart exim

DirectAdmin استفاده از /etc/exim.variables.conf.custom و da build exim_conf را برای اعمال پایدار این نوع تغییرات توصیه می‌کند.


فایل exim.conf را مستقیم ویرایش نکنید

از ویرایش مستقیم فایل زیر خودداری کنید:

/etc/exim.conf

زیرا CustomBuild می‌تواند هنگام Update یا بازسازی تنظیمات Exim، تغییرات مستقیم را بازنویسی کند.

برای تغییرات ساده از فایل‌های زیر استفاده کنید:

/etc/exim.variables.conf.custom
/etc/exim.strings.conf.custom

DirectAdmin این فایل‌ها را روش اصلی Customization معرفی می‌کند.


بررسی فعال‌بودن مدیریت Exim توسط CustomBuild

grep '^eximconf=' \
/usr/local/directadmin/custombuild/options.conf

خروجی معمول:

eximconf=yes

برای مشاهده تنظیمات مرتبط:

da build options | grep -E 'exim|spam'

مرحله دوم: استفاده از SMTP Authentication

کاربران Outlook، Thunderbird، موبایل و نرم‌افزارها باید برای ارسال ایمیل خارجی از SMTP Authentication استفاده کنند.

تنظیم نمونه:

SMTP Server: mail.example.com
Port: 587
Encryption: STARTTLS
Authentication: Enabled
Username: info@example.com
Password: Email account password

در Exim، SMTP Authentication به Client اجازه می‌دهد پس از احراز هویت به مقصدهای خارجی Relay کند. Exim Authentication را به‌صورت بخشی مستقل از پردازش SMTP پیاده‌سازی می‌کند.


تنظیم Email Client

تنظیممقدار پیشنهادی
SMTP Servermail.example.com
SMTP Port587
EncryptionSTARTTLS
Authenticationفعال
Usernameآدرس کامل ایمیل
Passwordرمز Mailbox
POP3در صورت نیاز
IMAPترجیحاً 993 SSL/TLS

نمونه:

SMTP Host: mail.example.com
SMTP Port: 587
Security: STARTTLS
Username: info@example.com

مرحله سوم: جلوگیری از SMTP AUTH روی پورت 25

پورت 25 اساساً برای ارتباط Mail Serverها استفاده می‌شود. کاربران بهتر است Authentication را روی پورت‌های Submission مانند 587 یا 465 انجام دهند.

DirectAdmin روش رسمی برای محدودکردن نمایش قابلیت AUTH به پورت‌های 465 و 587 ارائه کرده است.

فایل زیر را باز کنید:

nano /etc/exim.variables.conf.custom

خط زیر را اضافه کنید:

auth_advertise_hosts = ${if or { {eq {$received_port}{465}} {eq {$received_port}{587}} } {*}{}}

سپس:

da build exim_conf

و:

systemctl restart exim

بررسی نتیجه روی پورت 25

از یک سیستم خارجی:

telnet mail.example.com 25

سپس:

EHLO client.example.net

در خروجی پورت 25 نباید قابلیت زیر نمایش داده شود:

250-AUTH PLAIN LOGIN

DirectAdmin همین تست را برای تأیید عدم ارائه AUTH روی پورت 25 پیشنهاد می‌کند.


بررسی پورت 587

telnet mail.example.com 587

سپس:

EHLO client.example.net

در صورت پیکربندی مناسب، Exim باید قابلیت‌هایی مانند STARTTLS را ارائه کند.

پس از STARTTLS، قابلیت Authentication قابل استفاده خواهد بود.


مرحله چهارم: اجبار TLS برای Authentication

Username و Password نباید روی اتصال SMTP رمزنگاری‌نشده ارسال شوند.

DirectAdmin مستند کرده است که می‌توان Authenticatorهای PLAIN و LOGIN را به‌گونه‌ای تنظیم کرد که فقط هنگام وجود TLS تبلیغ شوند. شرط مربوط به این رفتار به‌شکل زیر است:

server_advertise_condition = ${if def:tls_in_cipher }

در یک Exim Authenticator نمونه:

plain:
  driver = plaintext
  public_name = PLAIN
  server_advertise_condition = ${if def:tls_in_cipher }

و:

login:
  driver = plaintext
  public_name = LOGIN
  server_advertise_condition = ${if def:tls_in_cipher }

به‌دلیل اینکه این بخش داخل Authenticator Configuration قرار دارد، تغییر آن باید با روش Custom پایدار DirectAdmin انجام شود، نه با ویرایش موقت /etc/exim.conf.


بررسی Certificate سرویس SMTP

DirectAdmin می‌تواند برای Hostname سرور به‌صورت خودکار Certificate صادر کند و همان Certificate برای Exim و Dovecot استفاده شود. Certificateهای Exim معمولاً از مسیرهای زیر خوانده می‌شوند:

/etc/exim.cert
/etc/exim.key

برای بررسی Certificate:

openssl x509 \
-in /etc/exim.cert \
-noout \
-subject \
-issuer \
-dates

تست STARTTLS روی SMTP

openssl s_client \
-starttls smtp \
-connect mail.example.com:587 \
-servername mail.example.com

پس از اتصال موفق می‌توانید اطلاعات Certificate و TLS Session را مشاهده کنید.


تست پورت 465

openssl s_client \
-connect mail.example.com:465 \
-servername mail.example.com

اگر سرویس روی 465 فعال باشد، باید TLS بلافاصله برقرار شود.


تنظیم Certificate خودکار Hostname

در DirectAdmin:

Admin Level
Server Manager
Server TLS Certificate

Certificate Hostname صادرشده توسط DirectAdmin می‌تواند برای DirectAdmin، Exim، Dovecot و سرویس‌های دیگر استفاده شود.


مرحله پنجم: ارسال ایمیل از WordPress و وب‌سایت

برای WordPress، WHMCS، Laravel و سایر برنامه‌ها بهتر است یک Email Account اختصاصی بسازید.

نمونه:

notification@example.com

و برنامه را به SMTP Authentication متصل کنید:

SMTP Host: mail.example.com
SMTP Port: 587
Encryption: STARTTLS
Authentication: Enabled
Username: notification@example.com
Password: Mailbox password

این روش از دادن Relay عمومی به IPها قابل‌کنترل‌تر است و تمام ارسال‌ها از مسیر Exim عبور می‌کنند.


تنظیم نمونه WordPress

در افزونه SMTP:

Mailer: Other SMTP
SMTP Host: mail.example.com
Encryption: TLS
SMTP Port: 587
Authentication: Enabled
SMTP Username: notification@example.com
SMTP Password: Strong password
From Email: notification@example.com

پس از ذخیره، Test Email ارسال کنید.


برنامه روی همان DirectAdmin Server

برنامه محلی معمولاً می‌تواند از Sendmail Interface سیستم استفاده کند.

مسیر رایج:

/usr/sbin/sendmail

بررسی:

command -v sendmail

خروجی:

/usr/sbin/sendmail

در برنامه‌هایی که SMTP Authentication را پشتیبانی می‌کنند، همچنان استفاده از Mailbox اختصاصی روی پورت 587 ساختار شفاف‌تری برای Logging و کنترل دسترسی ایجاد می‌کند.


مرحله ششم: جلوگیری از دورزدن Exim توسط Scriptها

اگر روی سرور از CSF استفاده می‌شود، قابلیت SMTP Blocking می‌تواند اتصال مستقیم کاربران و Scriptها به SMTP Serverهای خارجی را محدود کند و آن‌ها را مجبور کند از Exim استفاده کنند.

مستندات DirectAdmin توضیح می‌دهند که SMTP Blocking در CSF می‌تواند SMTP خروجی را برای کاربران عادی مسدود کند و دسترسی را برای سرویس‌هایی مانند root و exim نگه دارد.

فایل:

nano /etc/csf/csf.conf

تنظیمات مرتبط را پیدا کنید:

grep -E '^SMTP_' /etc/csf/csf.conf

سپس در صورت تغییر:

csf -r

تنظیم CSF را براساس نیاز واقعی سرور انجام دهید؛ به‌خصوص اگر Container، Monitoring Agent یا نرم‌افزار خاصی نیاز به SMTP خروجی مستقیم دارد.


مرحله هفتم: Local Mail Server را درست تنظیم کنید

یکی از خطاهای رایج در DirectAdmin این است که دامنه محلی با خطای زیر مواجه می‌شود:

550 relay not permitted, authentication required

این خطا ممکن است اصلاً به SMTP Authentication مربوط نباشد.

اگر Exim دامنه را Local Domain تشخیص ندهد، دریافت پیام برای آن را به‌عنوان Relay در نظر می‌گیرد. DirectAdmin لیست دامنه‌های محلی را از فایل /etc/virtual/domains مدیریت می‌کند.

بررسی:

grep -Fx 'example.com' /etc/virtual/domains

اگر خروجی زیر نمایش داده شود:

example.com

دامنه Local شناخته شده است.


بررسی تنظیم Local Mail Server در DirectAdmin

در User Level وارد بخش مدیریت DNS/Mail دامنه شوید و مطمئن شوید گزینه مربوط به استفاده از Local Mail Server فعال است.

اگر ایمیل دامنه روی Google Workspace، Microsoft 365 یا سرور دیگری قرار دارد، Local Mail Server باید غیرفعال باشد.

اگر ایمیل روی همین DirectAdmin Server قرار دارد، باید فعال باشد.

DirectAdmin توضیح می‌دهد که غیرفعال‌کردن Local Mail Server باعث حذف دامنه از /etc/virtual/domains می‌شود.


بررسی ساختار دامنه

ls -ld /etc/virtual/example.com

و:

grep -Fx 'example.com' /etc/virtual/domains

اگر Mail Server باید Local باشد اما پوشه یا Domain Entry وجود ندارد، ابتدا تنظیم دامنه را از داخل DirectAdmin اصلاح کنید.


مرحله هشتم: تست Open Relay

برای آزمایش صحیح باید از یک سیستم خارجی استفاده کنید که روی همان DirectAdmin Server قرار ندارد.

ساختار تست:

External source IP
External sender
External recipient
No SMTP authentication

سرور باید این درخواست را Reject کند.


نصب swaks

در AlmaLinux یا Rocky Linux:

dnf install epel-release -y
dnf install swaks -y

در Debian یا Ubuntu:

apt update
apt install swaks -y

تست Open Relay

از یک سیستم خارجی اجرا کنید:

swaks \
--server mail.example.com \
--port 25 \
--from sender@example.net \
--to recipient@example.org

در این تست:

Sender domain: External
Recipient domain: External
Authentication: None

Exim باید در مرحله Recipient پیام را Reject کند.

نمونه نتیجه مناسب:

550 relay not permitted

Exim Relay را در مرحله بررسی Recipient و براساس ACLها کنترل می‌کند.


تست دریافت ایمیل محلی

اکنون همان تست را برای یک Mailbox محلی انجام دهید:

swaks \
--server mail.example.com \
--port 25 \
--from sender@example.net \
--to info@example.com

اگر example.com روی همین DirectAdmin میزبانی می‌شود، این پیام باید بدون SMTP Authentication پذیرفته شود.

اگر با خطای Relay مواجه شد، /etc/virtual/domains را بررسی کنید.


تست ارسال با Authentication

swaks \
--server mail.example.com \
--port 587 \
--tls \
--auth LOGIN \
--auth-user info@example.com \
--auth-password 'EMAIL_PASSWORD' \
--from info@example.com \
--to recipient@gmail.com

مقدار زیر را با رمز واقعی جایگزین کنید:

EMAIL_PASSWORD

رمز Mailbox را در History، Script عمومی یا Documentation ذخیره نکنید.


مرحله نهم: بررسی Exim Log

DirectAdmin به‌صورت پیش‌فرض Logهای Exim را در مسیر زیر نگهداری می‌کند:

/var/log/exim/

Log اصلی:

/var/log/exim/mainlog

مشاهده زنده:

tail -f /var/log/exim/mainlog

جست‌وجوی SMTP Authentication

grep 'A=login:' \
/var/log/exim/mainlog \
| tail -n 50

نمونه Log احراز هویت‌شده می‌تواند شامل ساختاری مشابه زیر باشد:

P=esmtpa A=login:info@example.com

DirectAdmin همین الگو را برای شمارش ارسال‌های SMTP Authentication در Logهای Exim استفاده می‌کند.


جست‌وجوی Mailbox

grep 'info@example.com' \
/var/log/exim/mainlog

جست‌وجوی IP:

grep '203.0.113.25' \
/var/log/exim/mainlog

پیدا کردن خطاهای Relay

grep -i 'relay' \
/var/log/exim/mainlog \
| tail -n 100

یا:

grep -i 'authentication' \
/var/log/exim/mainlog \
| tail -n 100

Debug مستقیم Exim

DirectAdmin برای بررسی اینکه Exim چرا یک پیام را قبول یا رد می‌کند، استفاده از حالت Debug را مستند کرده است:

exim -d -bh 127.0.0.1

سپس:

EHLO client.example.net
MAIL FROM:<sender@example.net>
RCPT TO:<recipient@example.org>

Exim تصمیمات ACL و Relay را به‌صورت Debug نمایش می‌دهد.

برای خروج:

QUIT

مرحله دهم: بررسی Mail Queue

تعداد پیام‌های Queue:

exim -bpc

نمایش Queue:

exim -bp

نمایش خلاصه:

exim -bp | exiqsumm

DirectAdmin این دستورها را برای بررسی و مدیریت Queue رسمی Exim مستند کرده است.


مشاهده Header یک پیام

exim -Mvh MESSAGE_ID

مشاهده Body:

exim -Mvb MESSAGE_ID

مشاهده Log پیام:

exim -Mvl MESSAGE_ID

ارسال مجدد:

exim -M MESSAGE_ID

حذف:

exim -Mrm MESSAGE_ID

این Commandها در مستندات Queue DirectAdmin نیز معرفی شده‌اند.


افزایش ناگهانی Queue

افزایش Queue می‌تواند ناشی از موارد زیر باشد:

  • لو رفتن Password یک Mailbox
  • هک‌شدن WordPress
  • ارسال تعداد زیاد پیام توسط Script
  • مشکل DNS
  • مسدودبودن پورت 25 خروجی
  • Blacklist شدن IP
  • مشکل Smarthost
  • تنظیم اشتباه Relay

ابتدا ارسال‌های SMTP Authentication را بررسی کنید:

grep 'P=esmtpa A=login:' \
/var/log/exim/mainlog \
| tail -n 100

DirectAdmin برای بررسی سوءاستفاده از SMTP Authentication نیز تحلیل همین Logها را توصیه می‌کند.


محدودکردن From کاربران احراز هویت‌شده

یکی از Hardeningهای مفید این است که یک کاربر احراز هویت‌شده نتواند از دامنه Mailbox دیگران به‌عنوان Sender استفاده کند.

DirectAdmin نمونه ACL رسمی برای محدودکردن Sender Domain به Domain کاربر SMTP Auth ارائه می‌کند.

Hook مورد استفاده در Eximهای جدید DirectAdmin:

/etc/exim.acl_check_message.pre.conf

نمونه Logic مستندشده توسط DirectAdmin، Domain مربوط به $authenticated_id را با Sender Domain و From Header مقایسه می‌کند. این تغییر باید ابتدا روی سرور آزمایشی بررسی شود؛ زیرا Aliasها، Forwarderها و نرم‌افزارهایی که از چند From Address استفاده می‌کنند ممکن است تحت تأثیر قرار گیرند.


Relay براساس IP یا SMTP Authentication؟

برای بیشتر سناریوها SMTP Authentication انتخاب مناسب‌تری است.

روشکاربردپیشنهاد
SMTP Authenticationکاربران و برنامه‌هاپیشنهاد اصلی
Relay براساس IPدستگاه یا نرم‌افزار Legacyفقط در صورت اجبار
Open Relayهمه کاربران اینترنتهرگز
Smarthostارسال خروجی از سرور ثالثدر صورت نیاز

در DirectAdmin بهتر است به‌جای ایجاد ACL عمومی برای Rangeهای IP، برای برنامه‌های عادی Mailbox اختصاصی و SMTP Authentication تعریف شود.


برای دستگاهی که SMTP Authentication ندارد چه کنیم؟

اگر یک Scanner، Printer یا برنامه قدیمی از Authentication پشتیبانی نمی‌کند، سه انتخاب منطقی وجود دارد:

  1. استفاده از یک SMTP Relay داخلی جداگانه
  2. استفاده از Smarthost مناسب دستگاه
  3. تعریف ACL بسیار محدود برای Source IP ثابت

گزینه سوم نیازمند Customization سطح Exim است و نباید با یک Rule عمومی یا Range بزرگ انجام شود.

در سرور Hosting اشتراکی، دادن Relay بدون Authentication به شبکه‌های گسترده توصیه نمی‌شود.


مرحله یازدهم: Relay تمام ایمیل‌های خروجی از طریق Smarthost

Relay در DirectAdmin ممکن است منظور دیگری نیز داشته باشد: ارسال تمام ایمیل‌های خروجی سرور از یک SMTP Server خارجی.

نمونه:

DirectAdmin Exim
       |
       v
External SMTP Relay
       |
       v
Gmail / Outlook / Other servers

DirectAdmin برای این سناریو راهنمای رسمی Smarthost ارائه می‌کند و امکان استفاده از Authentication و TLS را نیز دارد.


موارد استفاده Smarthost

  • پورت 25 خروجی دیتاسنتر بسته است.
  • IP سرور Reputation مناسبی ندارد.
  • ارسال باید از Gateway مرکزی انجام شود.
  • سازمان از SMTP Relay خارجی استفاده می‌کند.
  • ارسال‌ها باید از سرویس تخصصی Email عبور کنند.

فایل‌های Custom مربوط به Smarthost

DirectAdmin برای تنظیم Smarthost از فایل‌های زیر استفاده می‌کند:

/etc/exim.authenticators.post.conf
/etc/exim.transports.pre.conf
/etc/exim.routers.pre.conf

برای Relay دارای Username و Password، Authenticator، Transport و Router مربوط به Smarthost باید تعریف شوند.

DirectAdmin یک Generator رسمی برای ساخت این Snippetها در مستندات خود ارائه می‌کند.


تعیین پورت Smarthost

برای استفاده از پورت اختصاصی، Hostname را با دو : و شماره پورت مشخص کنید:

smtp.example.com::587

DirectAdmin این Syntax را برای Smarthostهای دارای Custom Port مستند کرده است.


Restart پس از تنظیم Smarthost

systemctl restart exim

DirectAdmin نیز پس از اعمال Snippetهای Smarthost، Restart سرویس Exim را لازم می‌داند.


بررسی DNS دامنه محلی

اگر هنگام دریافت ایمیل خطای زیر را مشاهده کردید:

lowest numbered MX record points to local host

اما دامنه در /etc/virtual/domains وجود ندارد، Exim وضعیت دامنه را با DNS و Local Domain List ناسازگار تشخیص داده است.

DirectAdmin برای دامنه‌ای که باید Local باشد، وجود Domain در /etc/virtual/domains و ساختار /etc/virtual/DOMAIN/ را ضروری می‌داند.

بررسی:

grep -Fx 'example.com' /etc/virtual/domains

و:

ls -ld /etc/virtual/example.com

بررسی Firewall

پورت‌های زیر باید براساس سرویس‌های موردنیاز باز باشند:

پورتسرویس
25SMTP Server-to-Server
465SMTPS
587SMTP Submission
110POP3
143IMAP
993IMAPS
995POP3S

DirectAdmin همین پورت‌ها را برای Exim و Dovecot در مستندات Firewall ذکر می‌کند.


بررسی CSF

grep '^TCP_IN' /etc/csf/csf.conf

اطمینان حاصل کنید پورت‌های موردنیاز وجود دارند:

25,465,587

پس از تغییر:

csf -r

تست اتصال از خارج سرور

nc -vz mail.example.com 25
nc -vz mail.example.com 587
nc -vz mail.example.com 465

اگر روی localhost پورت باز است ولی از اینترنت قابل دسترسی نیست، Firewall سرور، Firewall دیتاسنتر یا NAT را بررسی کنید.


رفع خطای 550 relay not permitted

نمونه:

550 relay not permitted, authentication required

ابتدا مشخص کنید گیرنده Local است یا External.

اگر گیرنده خارجی است

بررسی کنید:

SMTP authentication: Enabled
Username: Correct
Password: Correct
Port: 587
TLS: Enabled

اگر گیرنده محلی است

بررسی کنید:

grep -Fx 'example.com' /etc/virtual/domains

DirectAdmin صراحتاً اعلام می‌کند خطای Relay برای یک Local Domain معمولاً زمانی رخ می‌دهد که Domain در /etc/virtual/domains وجود نداشته باشد.


Authentication انجام می‌شود اما Relay کار نمی‌کند

Log را بررسی کنید:

grep 'A=login:' \
/var/log/exim/mainlog \
| tail -n 50

اگر Authentication موفق باشد باید اطلاعات Authenticator در Log دیده شود.

سپس Recipient و نتیجه Router را بررسی کنید:

grep 'info@example.com' \
/var/log/exim/mainlog

AUTH روی پورت 25 همچنان نمایش داده می‌شود

تنظیم را بررسی کنید:

grep '^auth_advertise_hosts' \
/etc/exim.variables.conf.custom

باید مشابه زیر باشد:

auth_advertise_hosts = ${if or { {eq {$received_port}{465}} {eq {$received_port}{587}} } {* }{}}

سپس Config را بازسازی کنید:

da build exim_conf

و:

systemctl restart exim

بعد دوباره با EHLO روی پورت 25 آزمایش کنید. DirectAdmin این روش را برای محدودسازی AUTH مستند کرده است.


تغییرات بعد از CustomBuild از بین رفته‌اند

اگر /etc/exim.conf را مستقیماً ویرایش کرده باشید، ممکن است CustomBuild تغییرات را بازنویسی کرده باشد.

برای تنظیمات ساده از:

/etc/exim.variables.conf.custom
/etc/exim.strings.conf.custom

و برای Customization کامل‌تر از مسیر CustomBuild استفاده کنید:

/usr/local/directadmin/custombuild/custom/exim/

DirectAdmin این روش را برای نگهداری تغییرات Exim در برابر Rebuildها مستند کرده است.


تنظیم امن پیشنهادی Relay

Port 25:
Server-to-server SMTP
AUTH disabled

Port 587:
Client submission
STARTTLS enabled
AUTH enabled

Port 465:
Optional secure submission
TLS enabled
AUTH enabled

Relay:
Authenticated users only
External unauthenticated relay denied

Web applications:
Authenticated SMTP preferred

Local domains:
Present in /etc/virtual/domains

Exim configuration:
Managed through CustomBuild custom files

چک‌لیست نهایی Relay در DirectAdmin

  • Exim فعال است.
  • پورت 25 برای Mail Serverها باز است.
  • پورت 587 برای کاربران باز است.
  • پورت 465 در صورت استفاده فعال است.
  • کاربران از SMTP Authentication استفاده می‌کنند.
  • Username به‌صورت آدرس کامل ایمیل وارد می‌شود.
  • کاربران روی پورت 587 از STARTTLS استفاده می‌کنند.
  • AUTH روی پورت 25 غیرفعال شده است.
  • Authentication بدون TLS ارائه نمی‌شود.
  • Certificate معتبر روی Exim نصب است.
  • دامنه‌های Local داخل /etc/virtual/domains هستند.
  • Local Mail Server برای دامنه‌های محلی فعال است.
  • WordPress و برنامه‌ها از SMTP Authentication استفاده می‌کنند.
  • Relay عمومی براساس IP فعال نشده است.
  • Open Relay از یک سیستم خارجی تست شده است.
  • ارسال External بدون Authentication رد می‌شود.
  • دریافت برای Local Mailbox بدون Authentication انجام می‌شود.
  • /var/log/exim/mainlog بررسی شده است.
  • Mail Queue وضعیت غیرعادی ندارد.
  • CSF پورت‌های SMTP لازم را باز کرده است.
  • تغییرات Exim داخل فایل‌های Custom ذخیره شده‌اند.
  • Smarthost در صورت نیاز با روش رسمی DirectAdmin تنظیم شده است.

مطالعات بیشتر

برای مطالعه جزئیات بیشتر می‌توانید از منابع رسمی زیر استفاده کنید:

  • مستندات رسمی Exim در DirectAdmin
  • راهنمای عیب‌یابی Exim در DirectAdmin
  • مدیریت Mail Queue در DirectAdmin
  • تنظیم Smarthost در DirectAdmin
  • پورت‌های موردنیاز Firewall در DirectAdmin
  • تنظیم CSF در DirectAdmin
  • تنظیم SSL سرویس‌های Exim و Dovecot
  • مستندات رسمی Exim
  • آموزش کانفیگ صحیح Exim — مقاله مرتبط در دانش‌نامه
  • آموزش تنظیم صحیح Relay در cPanel — مقاله مرتبط در دانش‌نامه
  • آموزش تنظیم صحیح Relay در MailEnable — مقاله مرتبط در دانش‌نامه

جمع‌بندی

در DirectAdmin، سرویس Exim وظیفه ارسال و دریافت ایمیل را بر عهده دارد و Relay باید به‌گونه‌ای تنظیم شود که کاربران مجاز بتوانند ایمیل خارجی ارسال کنند، اما اتصال‌های ناشناس امکان Relay میان دامنه‌های خارجی را نداشته باشند.

تنظیم پیشنهادی کاربران:

SMTP Server: mail.example.com
Port: 587
Encryption: STARTTLS
Authentication: Enabled
Username: Full email address

برای افزایش امنیت می‌توان SMTP AUTH را فقط روی پورت‌های 465 و 587 ارائه کرد و پورت 25 را صرفاً برای ارتباط Mail Serverها در نظر گرفت. DirectAdmin برای این کار استفاده از auth_advertise_hosts در /etc/exim.variables.conf.custom را مستند کرده است.

همچنین Authentication باید روی اتصال رمزنگاری‌شده انجام شود تا Username و Password کاربران به‌صورت Plain Text در شبکه منتقل نشوند. DirectAdmin امکان محدودکردن Authenticatorها به اتصال TLS را نیز مستند کرده است.

برای WordPress، WHMCS و سایر نرم‌افزارها استفاده از SMTP Authentication با یک Mailbox اختصاصی نسبت به ایجاد Relay عمومی براساس IP انتخاب مناسب‌تری است.

اگر گیرنده‌ای که روی همان DirectAdmin Server میزبانی می‌شود با خطای 550 relay not permitted مواجه شود، پیش از تغییر تنظیمات Relay باید /etc/virtual/domains و گزینه Local Mail Server بررسی شوند؛ زیرا ممکن است Exim دامنه را به‌اشتباه Remote تشخیص داده باشد.

در نهایت، پس از هر تغییر باید Relay از یک IP خارجی آزمایش شود: ارسال خارجی بدون Authentication باید Reject شود، در حالی که دریافت پیام برای یک Mailbox محلی باید بدون SMTP Authentication امکان‌پذیر باشد.

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش تنظیم صحیح relay در directadmin

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام