پورت ایمیل: راهنمای IMAP، POP3 و SMTP با و بدون SSL

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

۶ دقیقه به‌روزرسانی ۵ آبان ۱۴۰۵

کلاینتی که باز کرده‌اید از شما می‌خواهد بین 993 و 143 یکی را انتخاب کنید، یا خطای Connection timed out می‌دهد و شما نمی‌دانید مشکل از پورت است یا از رمزنگاری. این متن مرجع کوتاهی است برای همان لحظه: عدد دقیق، نوع رمزنگاری متناظر، و آن چیزی که واقعاً باید در فیلدهای کلاینت بنویسید.

پورت ایمیل بر اساس نقش سرور، نه بر اساس عدد

سه نقش مستقل وجود دارد و هر کدام پورت خودش را دارد. اشتباه رایج این است که همه را یک چیز فرض کنیم.

نقشبدون رمزنگاریبا رمزنگاریحالت رمزنگاری
SMTP (ارسال)25465SSL/TLS مستقیم
SMTP (ارسال با احراز هویت)587—STARTTLS
IMAP (دریافت)143993SSL/TLS مستقیم
POP3 (دریافت)110995SSL/TLS مستقیم

تفاوت 465 و 587 را خیلی‌ها اشتباه می‌گیرند. پورت 465 از همان اولین بایت TLS را شروع می‌کند (implicit TLS)، ولی 587 اول متن باز صحبت می‌کند و بعد با دستور STARTTLS به رمزنگاری ارتقا می‌دهد. اگر در کلاینت پورت 587 را بزنید و گزینه رمزنگاری را روی «SSL/TLS» بگذارید، اتصال معمولاً قطع می‌شود یا در لاگ سرور wrong version number می‌بینید. برای 587 باید «STARTTLS» را انتخاب کنید، نه SSL.

کدام پورت را انتخاب کنم: 993 یا 143

اگر کلاینت شما هر دو را پشتیبانی می‌کند، 993 را انتخاب کنید. دلیلش امنیت نیست، سادگی است: در حالت implicit TLS هیچ مرحله ارتقایی وجود ندارد که شکست بخورد، و فایروال‌های میانی هم کمتر دستکاری‌اش می‌کنند. پورت 143 با STARTTLS روی شبکه‌های شرکتی که پروکسی شفاف دارند بیشتر گیر می‌کند.

اما یک مورد هست که در آن 143 انتخاب درست است: وقتی سرور شما فقط IMAP بدون رمزنگاری را روی شبکه داخلی سرو می‌کند و ترافیک از قبل داخل تونل است. در هر شرایط دیگری، 143 بدون STARTTLS یعنی نام کاربری و رمز عبور به‌صورت متن روی سیم می‌رود. این را در لاگ tcpdump می‌شود دید، و دیدنش کافی است که دیگر تکرارش نکنید.

POP3 در سال ۱۴۰۴ چه جایگاهی دارد

POP3 روی 995 هنوز کار می‌کند و برای یک سناریو منطقی است: صندوقی که فقط باید تخلیه شود و پیام‌ها بعد از دانلود از سرور حذف شوند. برای هر چیز دیگری IMAP ببرید. تفاوت عملی این است که POP3 وضعیت «خوانده‌شده» و پوشه‌ها را بین دستگاه‌ها همگام نمی‌کند؛ اگر روی گوشی پیامی را بخوانید، روی لپ‌تاپ هنوز خوانده‌نشده است. اگر مجبورید بین چند دستگاه کار کنید و POP3 انتخاب کرده‌اید، این‌جا اشتباه می‌کنند: گزینه «leave a copy on server» را روشن می‌گذارند و بعد از چند ماه صندوق سرور پر می‌شود و ارسال ایمیل قطع می‌شود، بدون هیچ خطای واضحی در کلاینت. علت را باید در مدیریت سهمیه ایمیل دنبال کنید، نه در تنظیمات پورت.

خطاهای رایج و معنای واقعی‌شان

  • Connection timed out روی پورت 25: اکثر ارائه‌دهندگان ابری و ISPهای خانگی پورت 25 خروجی را بسته‌اند. این خطا تقریباً هیچ‌وقت از تنظیمات کلاینت نیست.
  • SSL routines: wrong version number: پورت و حالت رمزنگاری با هم نمی‌خوانند. رایج‌ترین حالتش 587 با SSL مستقیم است.
  • Certificate verify failed: نام میزبان در فیلد سرور با نام روی گواهی یکی نیست. mail.example.com و smtp.example.com دو نام متفاوت‌اند حتی اگر به یک سرور برسند.
  • 535 Authentication failed: پورت درست است، مشکل در نام کاربری است. در بسیاری از کنترل‌پنل‌ها نام کاربری کامل است، نه فقط بخش قبل از @.

برای تست سریع بدون دست‌زدن به کلاینت، openssl کافی است:

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

اگر دستور اول گواهی را چاپ کرد، پورت و رمزنگاری سالم‌اند و مشکل جای دیگری است. اگر دستور دوم روی 250-STARTTLS گیر کرد، سرور شما STARTTLS را اعلام نکرده و باید 465 را امتحان کنید.

پورت 25 را برای ارسال برنامه‌ها کنار بگذارید

اگر برنامه‌ای می‌نویسید که ایمیل تراکنشی می‌فرستد، پورت 25 انتخاب اشتباهی است. دلایلش فنی است: بلاک بودن پورت خروجی روی اکثر شبکه‌ها، نبود احراز هویت اجباری، و نرخ تحویل پایین چون IPهای مسکونی و ابری روی 25 اعتبار کمی دارند. پورت درست 587 با STARTTLS و احراز هویت است. برای حجم بالا، ارسال از خود هاست هم محدودیت نرخ دارد؛ در راه‌اندازی ایمیل تراکنشی توضیح داده شده چرا سرویس اختصاصی ارسال انتخاب بهتری است.

یک نکته که کمتر گفته می‌شود: باز بودن پورت 587 به‌تنهایی تضمین تحویل نیست. اگر رکوردهای SPF و DKIM و DMARC درست نباشند، پیام شما روی پورت 587 هم به اسپم می‌رود. قبل از هر تغییر دیگری، رکورد MX دامنه را با ابزار بررسی رکورد MX چک کنید تا مطمئن شوید اصلاً به سرور درست اشاره می‌کند.

تنظیمات پیشنهادی برای یک کلاینت معمولی

  1. IMAP: سرور mail.example.com، پورت 993، رمزنگاری SSL/TLS، احراز هویت با رمز عبور عادی.
  2. SMTP: همان سرور، پورت 587، رمزنگاری STARTTLS، احراز هویت روشن.
  3. اگر 587 جواب نداد: پورت 465 با SSL/TLS مستقیم.
  4. نام میزبان را دقیقاً همان چیزی بنویسید که روی گواهی است.

برای انتقال صندوق بین دو سرور، همین پورت 993 کافی است و ابزارهایی مثل imapsync روی آن کار می‌کنند. جزئیاتش در انتقال ایمیل با IMAP آمده. اگر ترجیح می‌دهید بدون نصب کلاینت کار کنید، راهنمای وب‌میل مسیر کوتاه‌تری است.

روی یک هاست اشتراکی معمولی، همه این پورت‌ها از قبل باز و آماده‌اند و فقط باید عدد درست را در کلاینت بگذارید. اگر سرور را خودتان می‌چینید، باز کردن پورت‌ها بخش کوچکی از کار است؛ یک هاست لینوکس مدیریت‌شده این لایه را از دوش شما برمی‌دارد و شما فقط با فیلدهای کلاینت سر و کله می‌زنید.

پرسش‌های پرتکرار

پورت SMTP برای ارسال ایمیل کدام است، 25 یا 587؟

برای هر کلاینت یا برنامه‌ای که احراز هویت می‌کند، 587 با STARTTLS انتخاب درست است. پورت 25 فقط برای انتقال سرور به سرور طراحی شده و روی اکثر شبکه‌های خانگی و ابری خروجی‌اش بسته است.

اگر ارائه‌دهنده‌تان 587 را بسته باشد، 465 با SSL مستقیم جایگزین بعدی است. عدد 25 را فقط وقتی استفاده کنید که کنترل کامل روی شبکه دارید و می‌دانید چه می‌کنید.

تفاوت IMAP و POP3 در انتخاب پورت چیست؟

هر دو پروتکل دریافت ایمیل‌اند ولی مدل کاری‌شان فرق دارد: IMAP پیام‌ها را روی سرور نگه می‌دارد و وضعیت را بین دستگاه‌ها همگام می‌کند، POP3 آن‌ها را دانلود و معمولاً از سرور حذف می‌کند. پورت رمزنگاری‌شده IMAP عدد 993 و POP3 عدد 995 است.

برای کار با چند دستگاه، IMAP روی 993 را انتخاب کنید. POP3 روی 995 فقط وقتی منطقی است که صندوق را عمداً تخلیه می‌کنید.

چرا پورت 993 وصل نمی‌شود ولی 143 کار می‌کند؟

یعنی چیزی در مسیر شبکه جلوی TLS مستقیم را گرفته، معمولاً فایروال یا پروکسی شفاف سازمانی. در این حالت 143 با STARTTLS امنیت مشابهی می‌دهد و باید در کلاینت گزینه STARTTLS را انتخاب کنید، نه SSL.

اگر 143 هم بدون STARTTLS وصل می‌شود، رمز عبور شما متن روی شبکه می‌رود. این را موقت بپذیرید و در اولین فرصت مسیر شبکه را درست کنید.

آیا باز بودن پورت 587 تضمین می‌کند ایمیل به اسپم نرود؟

نه. پورت فقط مسیر انتقال را تعیین می‌کند و هیچ نقشی در اعتبار دامنه ندارد. تحویل به inbox به رکوردهای SPF، DKIM و DMARC، اعتبار IP و محتوای پیام بستگی دارد.

اگر پورت‌ها را درست کردید و باز هم پیام‌ها به اسپم می‌روند، سراغ دلایل اسپم شدن ایمیل بروید. آن‌جا ترتیب درست بررسی را نوشته‌ایم.

خلاصه‌ای که به کارتان می‌آید همین یک خط است: دریافت روی 993، ارسال روی 587 با STARTTLS. اگر کلاینتتان روی 587 با SSL گیر کرد، 465 را امتحان کنید و بعد سراغ لاگ سرور بروید.

آیا این مطلب برایتان مفید بود؟