دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
لینوکس
  • Folder icon closed Folder open iconآشنایی با لینوکس (Linux Fundamentals)
  • Folder icon closed Folder open iconتوزیع‌های مختلف لینوکس (Linux Distributions)
  • Folder icon closed Folder open iconFHS؛ آشنایی با ساختار فایل‌ و پوشه‌های لینوکسی
  • Folder icon closed Folder open iconمهم‌ترین دستورات پایه‌ای برای هر sysadmin
  • Folder icon closed Folder open iconمدیریت فایل و پوشه (file & directory management) در لینوکس
  • Folder icon closed Folder open iconآموزش ویرایش فایل‌های متنی در لینوکس با Nano و Vim
  • Folder icon closed Folder open iconآشنایی با users، groups و ساختار مدیریت کاربران در لینوکس
  • Folder icon closed Folder open iconآموزش Permission و Ownership در لینوکس
  • Folder icon closed Folder open iconآشنایی با Root و sudo
  • Folder icon closed Folder open iconآشنایی با Processها در لینوکس
  • Folder icon closed Folder open iconتغییر Hostname در لینوکس
  • Folder icon closed Folder open iconتنظیم Timezone در لینوکس
  • Folder icon closed Folder open iconتنظیم NTP در لینوکس
  • Folder icon closed Folder open iconبروزرسانی سیستم در لینوکس
  • Folder icon closed Folder open iconساخت کاربر جدید در لینوکس
  • Folder icon closed Folder open iconایجاد کاربران و گروه ها در لینوکس
  • Folder icon closed Folder open iconآموزش ACL در لینوکس؛ مدیریت سطح دسترسی پیشرفته برای کاربران و گروه‌ها
  • Folder icon closed Folder open iconآموزش umask در لینوکس؛ تعیین مجوز پیش‌فرض فایل‌ها و پوشه‌های جدید
  • Folder icon closed Folder open iconآموزش فایل sudoers؛ مدیریت دسترسی کاربران به دستورات مدیریتی در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chown در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chmod در لینوکس
  • Folder icon closed Folder open iconSticky Bit در لینوکس چیست؟ آموزش افزایش امنیت پوشه‌های اشتراکی
  • Folder icon closed Folder open iconآموزش SUID در لینوکس؛ اجرای برنامه‌ها با دسترسی مالک فایل
  • Folder icon closed Folder open iconآموزش SGID در لینوکس؛ مدیریت دسترسی گروه‌ها و اجرای برنامه‌ها
  • Folder icon closed Folder open iconآموزش ریست پسورد ubuntu
  • Folder icon closed Folder open iconآموزش ریست پسورد Debian
  • Folder icon closed Folder open iconاگر منابع سرور لینوکسی کامل درگیر شد چکار کنیم ؟
  • Folder icon closed Folder open iconآموزش تست استرس سرور لینوکس
  • Folder icon closed Folder open iconآموزش کامل systemctl
  • Folder icon closed Folder open iconساخت سرویس سفارشی در Systemd
  • Folder icon closed Folder open iconآموزش کامل cron
  • Folder icon closed Folder open iconآموزش کامل OpenSSL در لینوکس
  • Folder icon closed Folder open iconآموزش کامل htop در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور kill در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور df در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور du در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور lsblk در لینوکس
  • Folder icon closed Folder open iconآموزش کامل journalctl در لینوکس
  • Folder icon closed Folder open iconپیدا کردن فایل‌های حجیم در لینوکس
  • Folder icon closed Folder open iconپیدا کردن فایل‌های حجیم در لینوکس
  • Folder icon closed Folder open iconپیدا کردن پردازش‌های مصرف‌کننده CPU
  • Folder icon closed Folder open iconTerminal Multiplexer چیست؟ آشنایی با Screen، tmux و ابزارهای مشابه
    • آموزش Screen در لینوکس؛ مدیریت Sessionها و پردازش‌های طولانی
    • آموزش tmux در لینوکس؛ مدیریت Session، Window و Pane
    • اجرای پردازش‌های طولانی پس از قطع SSH با Screen و tmux
    • شخصی‌سازی Screen با فایل .screenrc
    • شخصی‌سازی tmux با فایل .tmux.conf
    • مقایسه Screen و tmux؛ کدام Terminal Multiplexer مناسب‌تر است؟
    • تفاوت nohup، Screen، tmux و systemd؛ کدام روش برای اجرای پردازش‌ها مناسب است؟
  • Folder icon closed Folder open iconتست SMTP در لینوکس به سمت مقصد
  • Folder icon closed Folder open iconآموزش بررسی وضعیت ارسال ایمیل در Track Delivery
  • Folder icon closed Folder open iconآموزش انتقال خودکار ایمیل‌ها به یک پوشه(mailenable , roundcube)
  • Folder icon closed Folder open iconآموزش مسدود کردن یک فرستنده در Webmail (Roundcube و MailEnable)
  • Folder icon closed Folder open iconآموزش تعریف Email Filter در cPanel
  • Folder icon closed Folder open iconآموزش بررسی فایل‌های لاگ در /var/log لینوکس
  • Folder icon closed Folder open iconآموزش grep برای جستجوی خطا در لاگ‌های لینوکس
  • Folder icon closed Folder open iconjournalctl -b؛ بررسی خطاهای Boot در لینوکس
  • Folder icon closed Folder open iconlogrotate؛ مدیریت و چرخش لاگ‌ها در لینوکس
  • Folder icon closed Folder open iconآموزش ریست پسورد centos 7
  • Folder icon closed Folder open iconآموزش ریست پسورد فراموش‌شده root در AlmaLinux 8.7 و AlmaLinux 9.1
  • Folder icon closed Folder open iconچرا در سرور لینوکس فضای دیسک آزاد نمی‌شود؟ آموزش کامل عیب‌یابی فضای Disk
لینوکس

تست SMTP در لینوکس به سمت مقصد

تست SMTP در لینوکس به سمت مقصد

مقدمه

تست SMTP در لینوکس یکی از ساده‌ترین و در عین حال مهم‌ترین روش‌ها برای پیدا کردن مشکل ارسال ایمیل از یک سرور به سرور مقصد است. اگر ایمیل‌های یک سایت، سرور لینوکس یا سرویس هاستینگ ارسال نمی‌شوند، قبل از تغییر تنظیمات پیچیده بهتر است ابتدا بررسی کنیم که سرور مبدأ اصلاً می‌تواند به SMTP Server مقصد متصل شود یا خیر.

در این آموزش یاد می‌گیریم چگونه از لینوکس به یک سرور SMTP متصل شویم، پورت 25 را بررسی کنیم، پاسخ SMTP را ببینیم و در صورت استفاده از STARTTLS، اتصال امن را نیز تست کنیم.

این روش برای مدیران سرور، کاربران هاستینگ، مدیران شبکه و حتی افرادی که تجربه زیادی در لینوکس ندارند قابل استفاده است.


SMTP چیست؟

SMTP مخفف Simple Mail Transfer Protocol است و پروتکلی است که برای انتقال ایمیل بین سرورها استفاده می‌شود.

برای مثال فرض کنید سرور شما باید یک ایمیل به example.com ارسال کند. سرور شما باید ابتدا بتواند به SMTP Server مقصد متصل شود.

به زبان ساده:

سرور شما → اتصال SMTP → سرور ایمیل مقصد → دریافت ایمیل

بنابراین اگر اتصال شبکه به SMTP Server مقصد برقرار نباشد، حتی اگر تنظیمات نرم‌افزار ایمیل کاملاً صحیح باشند، ارسال ایمیل انجام نمی‌شود.


چرا باید SMTP را از خود سرور لینوکس تست کنیم؟

فرض کنید مشتری می‌گوید:

«ایمیل‌های سایت من ارسال نمی‌شوند.»

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

  • پورت SMTP توسط فایروال بسته شده باشد.
  • دیتاسنتر دسترسی خروجی SMTP را محدود کرده باشد.
  • سرور مقصد اتصال از IP سرور شما را قبول نکند.
  • DNS مقصد مشکل داشته باشد.
  • سرویس SMTP مقصد روی پورت موردنظر فعال نباشد.
  • STARTTLS به درستی کار نکند.
  • IP سرور مبدأ در مقصد محدود یا مسدود شده باشد.

با تست مستقیم از لینوکس می‌توانیم مرحله‌به‌مرحله مشخص کنیم مشکل در کدام قسمت قرار دارد.


تست SMTP در لینوکس با Netcat

یکی از ساده‌ترین ابزارها برای تست اتصال TCP، ابزار Netcat یا nc است.

اگر روی سرور شما نصب باشد، می‌توانیم با دستور زیر پورت SMTP مقصد را بررسی کنیم:

nc -vz mail.example.com 25

به جای mail.example.com نام یا IP سرور مقصد را قرار دهید.

برای مثال:

nc -vz smtp.example.com 25

اگر اتصال برقرار باشد، معمولاً پیامی شبیه زیر مشاهده می‌کنید:

Connection to smtp.example.com 25 port [tcp/smtp] succeeded!

این نتیجه یعنی سرور لینوکس شما توانسته یک اتصال TCP به پورت 25 مقصد برقرار کند.

ابزار nc برای بررسی باز بودن پورت و برقراری اتصال TCP کاربرد دارد.

اگر Connection refused مشاهده کردیم

مثلاً:

Connection refused

یعنی مقصد اتصال TCP را قبول نکرده است.

در این حالت ممکن است سرویس SMTP روی مقصد فعال نباشد یا فایروال مقصد اتصال را رد کند.

اگر Connection timed out مشاهده کردیم

مثلاً:

Connection timed out

این حالت معمولاً نیاز به بررسی مسیر شبکه، فایروال و محدودیت‌های خروجی دارد.

نکته مهم این است که Timeout با Refused یکسان نیست.


تست مستقیم SMTP با دریافت Banner

SMTP معمولاً پس از برقراری اتصال، یک پیام اولیه یا Banner ارسال می‌کند.

برای مشاهده آن می‌توانیم از nc استفاده کنیم:

nc -v mail.example.com 25

اگر اتصال موفق باشد، ممکن است چیزی شبیه این ببینید:

220 mail.example.com ESMTP Postfix

عدد 220 نشان می‌دهد که سرور SMTP آماده دریافت درخواست است.

حالا می‌توانیم دستور زیر را ارسال کنیم:

EHLO test.example.com

برای خروج نیز:

QUIT

یک نمونه ساده:

220 mail.example.com ESMTP
EHLO test.example.com
250-mail.example.com
250-STARTTLS
250-SIZE 52428800
250-8BITMIME
QUIT
221 2.0.0 Bye

در این مثال، وجود STARTTLS در پاسخ سرور نشان می‌دهد که سرور مقصد قابلیت STARTTLS را اعلام کرده است.


تست SMTP با Telnet

اگر telnet روی لینوکس نصب باشد، می‌توانیم از آن نیز استفاده کنیم:

telnet mail.example.com 25

پس از اتصال، منتظر Banner بمانید.

مثلاً:

220 mail.example.com ESMTP

سپس:

EHLO test.example.com

و در پایان:

QUIT

اگر Telnet روی سرور نصب نیست، استفاده از nc معمولاً ساده‌تر است.


تست STARTTLS با OpenSSL

گاهی فقط باز بودن پورت SMTP کافی نیست.

ممکن است بخواهیم بررسی کنیم که STARTTLS نیز به درستی کار می‌کند.

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

openssl s_client -starttls smtp -connect mail.example.com:25

یا برای نمایش خلاصه‌تر اطلاعات:

openssl s_client -brief -starttls smtp -connect mail.example.com:25

OpenSSL به صورت رسمی گزینه -starttls smtp را برای برقراری TLS روی SMTP پشتیبانی می‌کند.

اگر TLS با موفقیت برقرار شود، اطلاعاتی درباره اتصال TLS، نسخه پروتکل و Cipher نمایش داده می‌شود.

برای خروج از اتصال نیز می‌توانید بنویسید:

QUIT

تست SMTP روی پورت‌های مختلف

SMTP فقط روی یک پورت استفاده نمی‌شود.

بسته به نوع سرویس، ممکن است با پورت‌های مختلف مواجه شوید:

پورتکاربرد معمول
25انتقال SMTP بین Mail Serverها
587ارسال ایمیل توسط کاربران و نرم‌افزارها
465SMTP با TLS از ابتدای اتصال

برای مثال، برای بررسی پورت 587:

nc -vz mail.example.com 587

و برای تست STARTTLS:

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

برای پورت 465 که TLS از ابتدای اتصال برقرار می‌شود، معمولاً باید به شکل زیر تست شود:

openssl s_client -connect mail.example.com:465

Postfix نیز پشتیبانی از TLS و حالت‌های مختلف SMTP/TLS را مستند کرده است.


تست SMTP به IP مقصد

گاهی بهتر است به جای نام دامنه، مستقیماً IP سرور مقصد را تست کنیم.

مثلاً:

nc -vz 192.0.2.10 25

این کار کمک می‌کند بفهمیم آیا مشکل از DNS است یا از خود ارتباط شبکه.

اگر این دستور موفق باشد:

nc -vz 192.0.2.10 25

اما این دستور موفق نباشد:

nc -vz mail.example.com 25

احتمال دارد DNS یا Resolve نام مقصد نیاز به بررسی داشته باشد.


بررسی DNS قبل از تست SMTP

قبل از تست اتصال SMTP، بهتر است بررسی کنیم نام سرور مقصد به IP صحیح Resolve می‌شود.

برای مثال:

dig mail.example.com

یا:

host mail.example.com

اگر مقصد مشخصی ندارید و می‌خواهید SMTP مربوط به یک دامنه را پیدا کنید، رکورد MX دامنه را بررسی کنید:

dig MX example.com

مثلاً ممکن است نتیجه شامل مواردی مانند این باشد:

example.com.    MX    10 mail.example.com.

در این حالت، mail.example.com یکی از سرورهایی است که برای دریافت ایمیل دامنه معرفی شده است.


تست کامل اتصال SMTP به مقصد

فرض کنید دامنه مقصد:

example.com

است.

ابتدا MX را پیدا می‌کنیم:

dig MX example.com

فرض کنیم نتیجه این باشد:

10 mail.example.com.

سپس IP را بررسی می‌کنیم:

dig A mail.example.com

حالا پورت 25 را تست می‌کنیم:

nc -vz mail.example.com 25

اگر اتصال برقرار شد، وارد SMTP می‌شویم:

nc -v mail.example.com 25

و سپس:

EHLO test.example.com

اگر STARTTLS در پاسخ مشاهده شد، می‌توانیم TLS را نیز آزمایش کنیم:

openssl s_client -starttls smtp -connect mail.example.com:25

این روند به ما اجازه می‌دهد مشکل را مرحله‌به‌مرحله پیدا کنیم.


اگر پورت 25 بسته باشد چه کنیم؟

یکی از مشکلات رایج در سرورهای هاستینگ، محدود بودن اتصال خروجی روی پورت 25 است.

برای مثال:

nc -vz mail.example.com 25

ممکن است Timeout شود.

در این شرایط باید موارد زیر بررسی شوند:

  1. فایروال خود سرور
  2. تنظیمات شبکه
  3. فایروال دیتاسنتر
  4. محدودیت Provider
  5. محدودیت خروجی SMTP
  6. فایروال سرور مقصد
  7. مسدود بودن IP مبدأ در مقصد

نکته مهم: باز بودن پورت 25 روی سرور مقصد به تنهایی کافی نیست. باید سرور مبدأ نیز اجازه برقراری اتصال خروجی به آن پورت را داشته باشد.


تفاوت تست پورت با تست ارسال ایمیل

این نکته بسیار مهم است.

وقتی دستور زیر موفق می‌شود:

nc -vz mail.example.com 25

فقط می‌دانیم که اتصال TCP برقرار شده است.

این نتیجه به معنی آن نیست که ایمیل حتماً ارسال خواهد شد.

ممکن است:

  • اتصال TCP برقرار شود؛
  • Banner دریافت شود؛
  • SMTP پاسخ 250 بدهد؛
  • اما هنگام MAIL FROM یا RCPT TO درخواست رد شود.

بنابراین تست SMTP چند مرحله دارد:

DNS → TCP → SMTP → EHLO → STARTTLS → احراز هویت/مجوز → MAIL FROM → RCPT TO → DATA → تحویل

برای عیب‌یابی دقیق باید مشخص کنیم مشکل در کدام مرحله اتفاق می‌افتد.


تست با Postfix در لینوکس

اگر سرور شما از Postfix استفاده می‌کند، علاوه بر تست دستی می‌توانید لاگ‌های Postfix را نیز بررسی کنید.

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

/var/log/mail.log

یا:

/var/log/maillog

برای مشاهده لحظه‌ای لاگ:

tail -f /var/log/mail.log

در برخی سیستم‌ها نیز می‌توانید از Journal استفاده کنید:

journalctl -u postfix -f

این روش برای زمانی مفید است که اتصال دستی موفق است اما خود Postfix نمی‌تواند ایمیل را تحویل دهد.

Postfix برای SMTP Client تنظیمات و لاگ‌های مربوط به TLS و STARTTLS را ارائه می‌کند و تنظیمات SMTP Client آن در مستندات رسمی قابل بررسی است.


چک لیست تست SMTP در لینوکس

  • نام دامنه مقصد را بررسی کنید.
  • رکورد MX مقصد را با dig MX بررسی کنید.
  • IP سرور مقصد را پیدا کنید.
  • پورت 25 را با nc -vz تست کنید.
  • Banner با کد 220 را بررسی کنید.
  • دستور EHLO را تست کنید.
  • وجود STARTTLS را بررسی کنید.
  • STARTTLS را با openssl s_client تست کنید.
  • در صورت نیاز پورت 587 را بررسی کنید.
  • در صورت استفاده از SMTPS، پورت 465 را جداگانه تست کنید.
  • فایروال خروجی سرور مبدأ را بررسی کنید.
  • محدودیت Provider یا دیتاسنتر روی SMTP را بررسی کنید.
  • IP سرور مبدأ را در مقصد بررسی کنید.
  • لاگ‌های Postfix یا MTA را بررسی کنید.
  • تفاوت بین «باز بودن پورت» و «تحویل موفق ایمیل» را در نظر بگیرید.

جمع‌بندی

تست SMTP در لینوکس یکی از اولین اقداماتی است که هنگام بروز مشکل در ارسال ایمیل باید انجام شود.

با چند دستور ساده مانند:

nc -vz mail.example.com 25

و:

openssl s_client -starttls smtp -connect mail.example.com:25

می‌توانیم بفهمیم آیا سرور لینوکس به SMTP Server مقصد دسترسی دارد و آیا STARTTLS در دسترس است یا خیر. OpenSSL مستقیماً امکان تست STARTTLS برای SMTP را فراهم می‌کند.

اگر اتصال برقرار نشود، باید شبکه، فایروال و محدودیت‌های Provider بررسی شوند. اگر اتصال برقرار شود اما ایمیل ارسال نشود، باید سراغ مراحل SMTP، محدودیت‌های مقصد، احراز هویت، سیاست‌های ضداسپم و لاگ‌های Mail Server برویم.

بهترین روش عیب‌یابی این است که مشکل را مرحله‌به‌مرحله بررسی کنیم و حدس نزنیم.

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

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

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

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

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

تست SMTP در لینوکس به سمت مقصد

کپی کردن لینک

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
شیدسچپج
 1234
567891011
12131415161718
19202122232425
2627282930 
« جولای    

عضویت

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

آموزش نصب و راه‌اندازی 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

سلام