آموزش ایمیل و SMTP

پروتکل SMTP چیست؟ آموزش تنظیم SMTP، پورت‌ها، احراز هویت ایمیل و رفع خطاهای رایج

در این مقاله SMTP را ساده ولی فنی توضیح می‌دهیم تا کاربر بتواند ایمیل سایت، وردپرس یا نرم‌افزار ایمیل را درست تنظیم کند و خطاهای ارسال را رفع کند.

SMTP چیست و چه کاری انجام می‌دهد؟

SMTP مخفف Simple Mail Transfer Protocol است؛ پروتکلی که برای ارسال و انتقال ایمیل استفاده می‌شود. وقتی از سایت، وردپرس، نرم‌افزار ایمیل یا یک فرم تماس ایمیل ارسال می‌کنید، معمولاً یک سرور SMTP پیام را می‌پذیرد و به مقصد می‌رساند.

اشتباه رایج این است که SMTP را با دریافت ایمیل یکی بدانیم. برای دریافت و خواندن ایمیل، معمولاً IMAP یا POP3 استفاده می‌شود. SMTP مسیر ارسال است؛ IMAP مسیر مشاهده و همگام‌سازی صندوق ایمیل.

پورت‌های مهم SMTP

پورت کاربرد رایج نکته مهم
25 ارتباط بین سرورهای ایمیل در بسیاری از سرویس‌دهنده‌ها برای جلوگیری از اسپم محدود است
587 ارسال ایمیل از کلاینت یا سایت با STARTTLS گزینه رایج و پیشنهادی برای ارسال authenticated
465 SMTP over SSL/TLS در بسیاری از کلاینت‌ها هنوز استفاده می‌شود
2525 جایگزین در بعضی سرویس‌های ایمیل استاندارد اصلی نیست اما برخی سرویس‌دهنده‌ها ارائه می‌کنند

تنظیم SMTP در هاست و cPanel

در cPanel، بعد از ساخت Email Account می‌توانید اطلاعات اتصال را از بخش Connect Devices یا Configure Mail Client ببینید. معمولاً hostname مثل mail.example.com، نام کاربری کامل مثل user@example.com، رمز ایمیل و پورت امن لازم است.

  • نام کاربری SMTP معمولاً همان آدرس ایمیل کامل است.
  • برای امنیت، از TLS/SSL استفاده کنید.
  • اگر روی وردپرس ایمیل ارسال می‌کنید، افزونه SMTP باید با همین اطلاعات تنظیم شود.
  • اگر ایمیل به اسپم می‌رود، فقط تنظیم SMTP کافی نیست؛ DNS ایمیل هم مهم است.

SPF، DKIM و DMARC چه ربطی به SMTP دارند؟

SMTP به‌تنهایی ثابت نمی‌کند که فرستنده واقعاً مالک دامنه است. برای همین سیستم‌های احراز هویت ایمیل مثل SPF، DKIM و DMARC به کمک DNS وارد می‌شوند. SPF مشخص می‌کند چه سرورهایی اجازه ارسال از طرف دامنه را دارند؛ DKIM پیام را امضا می‌کند؛ DMARC سیاست برخورد با ایمیل‌های نامعتبر را مشخص می‌کند.

# بررسی رکوردهای ایمیل دامنه
dig example.com MX +short
dig example.com TXT +short
dig _dmarc.example.com TXT +short

# تست اتصال به SMTP با openssl روی پورت 587
openssl s_client -starttls smtp -connect mail.example.com:587 -servername mail.example.com

خطاهای رایج SMTP و راه‌حل

۱. Authentication failed

نام کاربری یا رمز اشتباه است، آدرس ایمیل کامل وارد نشده، یا سیاست امنیتی سرور اجازه ورود از آن برنامه را نمی‌دهد. رمز را دوباره تنظیم کنید و مطمئن شوید username کامل مثل info@example.com است.

۲. Connection timed out

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

۳. ایمیل ارسال می‌شود اما به Inbox نمی‌رسد

ممکن است ایمیل bounce شده، در spam قرار گرفته یا توسط مقصد reject شده باشد. رکوردهای SPF/DKIM/DMARC، reverse DNS، محتوای پیام و reputation IP را بررسی کنید.

۴. وردپرس ایمیل ارسال نمی‌کند

استفاده از PHP mail بدون SMTP معتبر می‌تواند باعث شکست ارسال یا اسپم شدن شود. یک افزونه SMTP معتبر نصب کنید و ارسال آزمایشی بگیرید. اگر خطا داد، لاگ افزونه و پاسخ SMTP را بخوانید.

چک‌لیست تنظیم درست SMTP

  • Hostname و پورت درست را از پنل هاست بگیرید.
  • TLS/SSL را فعال کنید.
  • نام کاربری را آدرس کامل ایمیل بگذارید.
  • SPF و DKIM را از بخش Email Deliverability بررسی کنید.
  • DMARC را ابتدا با policy ملایم مثل none شروع و بعد از بررسی گزارش‌ها سخت‌گیرتر کنید.
  • برای سایت‌های فروشگاهی، ارسال ایمیل سفارش و بازیابی رمز را تست کنید.

سوالات متداول SMTP

SMTP چیست؟

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

برای SMTP از چه پورتی استفاده کنیم؟

برای ارسال ایمیل از نرم‌افزار یا سایت، معمولاً پورت 587 با STARTTLS پیشنهاد می‌شود. پورت 465 نیز برای SMTPS استفاده می‌شود. پورت 25 بیشتر برای ارتباط بین سرورهاست و در بسیاری از دیتاسنترها محدود است.

چرا ایمیل‌های سایت به اسپم می‌روند؟

نبود SPF/DKIM/DMARC، IP با reputation ضعیف، محتوای اسپمی، reverse DNS اشتباه یا ارسال زیاد بدون استاندارد می‌تواند دلیل باشد.

SMTP با IMAP چه فرقی دارد؟

SMTP برای ارسال است؛ IMAP برای دریافت و همگام‌سازی ایمیل‌ها روی چند دستگاه استفاده می‌شود.

چرا وردپرس ایمیل ارسال نمی‌کند؟

تابع mail PHP ممکن است محدود باشد یا ایمیل‌ها authenticate نشوند. استفاده از SMTP معتبر با TLS، نام کاربری و رمز درست معمولاً مشکل را حل می‌کند.

جمع‌بندی

SMTP ستون اصلی ارسال ایمیل است، اما ارسال موفق فقط به پورت و رمز وابسته نیست. DNS ایمیل، احراز هویت، reputation سرور، محتوای ایمیل و محدودیت‌های سرویس‌دهنده هم مهم هستند. اگر SMTP را درست تنظیم کنید و SPF/DKIM/DMARC را جدی بگیرید، بخش بزرگی از مشکلات ارسال ایمیل سایت‌ها حل می‌شود.