SMTP (پروتکل ساده انتقال ایمیل) یک پروتکل TCP/IP است که برای ارسال و دریافت ایمیل مورد استفاده قرار می گیرد. این پروتکل توسط سرویس دهندگان ایمیل مانند Gmail، Outlook، Apple Mail و Yahoo Mail به کار می شود.
سرور SMTP قادر به ارسال و دریافت ایمیل می باشد اما کلاینت های ایمیل برای ارسال پیام از برنامه هایی که SMTP را پشتیبانی می کنند، استفاده می نمایند. از آنجایی که SMTP در صف بندی پیام های سمت گیرنده محدودیت دارد، معمولاً در کنار پروتکل های دیگری مانند Post Office Protocol 3 یا اختصارا POP3 و Internet Message Access Protocol یا IMAP به کار می رود. این پروتکل ها به کاربر امکان می دهند که پیامها را در صندوق ایمیل سرور ذخیره کرده و به صورت دوره ای از سرور دانلود کند.
تصویر(1)
به طور کلی، SMTP برای ارسال ایمیل مورد استفاده قرار گرفته و روی مدیریت صندوق پیام سمت دریافت کننده، تمرکز کمتری دارد.
سرور SMTP چیست؟
سرور SMTP یا "پروتکل ساده انتقال ایمیل"، برنامه یا کامپیوتری است که ایمیل را ارسال، دریافت و منتقل می کند. این سرورها عموما از پروتکل TCP روی پورت های ۲۵ یا ۵۸۷ استفاده می کنند. شماره پورت، فرآیندهای خاصی که باید هنگام انتقال یک پیام تحت اینترنت یا شبکه به سرور انجام شوند را مشخص میکند. تمام دستگاه های متصل به شبکه پورت های استانداردی دارند که هر کدام دارای شماره خاصی هستند و برای پروتکل ها و وظایف مرتبط با آنها رزرو شده اند.
سرورهای SMTP به طور مداوم در حالت شنود هستند، به محض اینکه یک سرور اتصال TCP را از سمت کلاینت تشخیص دهد، فرایند SMTP برای ارسال ایمیل از طریق پورت 25 آغاز می شود.
سرورهای SMTP، پیام ها را برای کاربران ارسال می کنند. کلاینت های ایمیلی که برای خواندن و ارسال ایمیل ها استفاده میشوند، باید آدرس IP سرور SMTP را داشته باشند. برای کنترل مسائلی از جمله اسپم باید مشخص شود که کدام کلاینت ها مجاز به استفاده از سرور هستند. این کار با محدود کردن کاربران بر اساس آدرس IP آنها یا اعمال سیستم احراز هویت کلاینت ها، انجام می شود.
تصویر(2)
نحوه عملکرد سرور SMTP
SMTP از مدل کلاینت-سرور به شکل زیر استفاده می کند:
- ارسال ایمیل از کلاینت به میل سرور: میل سرور از SMTP استفاده می کند تا پیامی را از کلاینت ایمیل (مانند Gmail یا Outlook) به میل سرور دیگر ارسال نماید.
- هدایت ایمیل به سرور دریافت کننده: میل سرور از SMTP به عنوان یک سرویس تقویتی استفاده کرده و ایمیل را به دریافت کننده منتقل می کند.
- دریافت ایمیل توسط سرور گیرنده: میل سرور گیرنده، از پروتکل هایی مانند IMAP برای دانلود ایمیل های دریافتی استفاده کرده و آنها را در صندوق ورودی قرار می دهد.
به عنوان مثال، زمانی که کاربر روی دکمه "send" کلیک می کند، اتصال TCP برقرار شده و به یک سرور SMTP متصل می شود. هنگامی که سرور SMTP اتصال TCP را از کلاینتی دریافت می کند، توسط پورت ۲۵ نیز اتصالی جهت ارسال ایمیل برقرار می گردد.
در این مرحله، کلاینت SMTP به سرور دستور خواهد داد تا با اطلاعاتی مانند آدرس ایمیل فرستنده و گیرنده و همچنین محتوای آن چه اقدامی انجام دهد. سپس، مسئول انتقال ایمیل (MTA) هر دو آدرس ایمیل را بررسی می کند تا مطمئن شود متعلق به یک دامنه هستند. اگر هر دو آدرس از یک دامنه باشند، ایمیل مستقیما ارسال می شود، در صورت یکی نبودن آدرس دامنه ها، سرور از سیستم نام دامنه (DNS) برای شناسایی دامنه گیرنده کمک گرفته و سپس ایمیل را به سرور مناسب ارسال می کند. سپس گیرنده از پروتکل های IMAP یا POP3 برای دریافت ایمیل استفاده می نماید.
تصویر(3)
دستورات در پروتکل SMTP به صورت خودکار صادر شده و نیازی نیست کاربر مقصد آنها را به صورت دستی وارد کند. به عنوان مثال، "HELO" دستوری است که توسط آن، کلاینت ایمیل به سرور معرفی می شود. سایر دستورات SMTP شامل موارد زیر هستند:
- MAIL: این دستور برای شروع انتقال پیام استفاده می شود و کلاینت به سرور SMTP اطلاع می دهد که تراکنشی جدید آغاز شده است.
- RCPT: این دستور بعد از MAIL آمده و آدرس ایمیل گیرنده را مشخص می نماید.
- DATA: این دستور انتقال داده بین کلاینت و سرور را آغاز می کند و محتویات پیام به سرور SMTP منتقل می شود.
- QUIT: پس از ارسال ایمیل، کلاینت این دستور را به سرور ارسال می کند تا اتصال قطع شود.
- RSET: از این دستور جهت لغو تراکنش ایمیل استفاده می شود. با ارسال آن به سرور، تمام داده های ایمیل حذف می گردد.
این دستورات کمک می کنند تا فرایند ارسال و مدیریت ایمیل به صورت خودکار و بدون دخالت کاربر انجام شود.
تفاوت سرور SMTP با IMAP و POP
سرور SMTP جهت ارسال، هدایت یا فوروارد پیام ها از کلاینت ایمیل مورد استفاده قرار می گیرد و برای دریافت پیام ها کاربردی ندارد. جهت دریافت ایمیل ها از IMAP و POP استفاده می شود.
IMAP یک پروتکل استاندارد برای دریافت ایمیل است که وظیفه مدیریت و بازیابی پیام ها را بر عهده دارد. این پروتکل، ایمیل ها را روی سرور نگه داشته و سپس آنها را در دستگاه های مختلف همگام سازی می کند. IMAP به کاربران اجازه می دهد تا پیام ها را در پوشه ها دسته بندی و علامت گذاری کرده و همچنین پیش نویس های ایمیل را روی سرور ذخیره کنند.
کاربران می توانند از چندین برنامه کلاینت ایمیل که با میل سرور همگام سازی می شوند، استفاده کنند تا وضعیت پیام ها (خوانده شده یا نشده) به صورت یکپارچه نمایش داده شود. IMAP به عنوان واسط بین میل سرور و کلاینت عمل می کند. وقتی کاربر با استفاده از IMAP ایمیلی را می خواند، مستقیما از سرور آن را مشاهده کرده و نیازی به دانلود یا ذخیره سازی ایمیل در دستگاه شخصی ندارد.
اکثر سرورها و کلاینت های ایمیل از POP پشتیبانی میکنند. POP پروتکل کلاینت-سرور یک طرفه است که در آن ایمیل ها روی سرور دریافت و نگهداری می شوند. همچنین به کاربران امکان می دهد ایمیل ها را از سرور دانلود نمایند. بنابراین دریافت کننده می تواند به صورت آفلاین ایمیل ها را مشاهده کند.
وقتی SMTP همراه با IMAP یا POP به کار رود، پیام های ایمیل را انتقال می دهد. SMTP وظیفه ارسال ایمیل را بر عهده دارد، در حالی که IMAP یا POP برای دریافت و مدیریت ایمیل ها به کار گرفته می شوند. POP سرویس "ذخیره و ارسال" در نظر گرفته می شود و IMAP شبیه به یک فایل سرور از راه دور عمل می نماید زیرا کاربر می تواند ایمیل ها را روی سرور نگه داشته و از هر دستگاه یا مکانی به آنها دسترسی پیدا کند.
POP و IMAP توسط کلاینت های ایمیل و وب سرورها پشتیبانی می شوند. برخلاف POP، پروتکل IMAP ایمیل ها را در دستگاه ها و کلاینت های مختلف همگام سازی می کند.
تفاوت SMTP و HTTP API
SMTP رایج ترین پروتکل جهت ارسال ایمیل می باشد و از رابط های برنامه نویسی (API) مبتنی بر HTTP در فضای ابری برای ارسال و دریافت ایمیل استفاده می کند.
API های HTTP دو مزیت مهم دارند:
- ارتباط بین کلاینت ایمیل و سرور سریع تر از SMTP است زیرا API های HTTP برای احراز هویت فرستنده و گیرنده به دستورات کمتری نیاز دارند.
- API ها قابلیت هایی را ارائه می دهند که در SMTP وجود نداشته و امکانات بیشتری برای کاربران فراهم می کنند.
سرور SMTP و سیستم های مبتنی بر Unix
Sendmail پرکاربردترین میل سرور SMTP در سیستم های های مبتنی بر یونیکس است. این ابزار وظیفه انتقال ایمیل ها در پس زمینه را بر عهده داشته و رابط کاربری آن ساده و کاربرپسند می باشد.
تصویر(4)
سرور SMTP داخلی یا سرویس شخص ثالث
سرورهای SMTP می توانند به صورت داخلی یا سرویس شخص ثالث (third-party) مورد استفاده قرار گیرند. سرورهای SMTP داخلی به طور مستقل عمل می کنند اما سرورهای SMTP شخص ثالث را ارائه دهنده آنها مدیریت خواهد کرد.
ارائه دهندگان SMTP شخص ثالث مسئول تمامی جوانب، از جمله نگهداری، نظارت بر میل سرورها و امنیت آنها هستند. بنابراین نیازی نیست که کاربران، تخصصی در این زمینه ها برای راه اندازی و نگهداری سرور داشته باشند اما لازم است در خصوص اختلالات، اطلاعات کسب نمایند.
سرورهای SMTP داخلی بر خلاف سرورهای شخص ثالث محدودیتی برای ارسال ایمیل به صورت روزانه اعمال نمی کنند. کاربران می بایست دانش فنی لازم برای نگهداری، راه اندازی و نظارت بر سرور را داشته باشند. همچنین، کاربران مسئول امنیت سرور خود هستند. این مورد شامل انتخاب پروتکل های امن ایمیل، بروزرسانی نرم افزار سرور و استفاده از فایروال های میل سرور می باشد.
جمع بندی
SMTP پروتکلی برای ارسال ایمیل از سرور به سرور یا کلاینت به سرور می باشد. این پروتکل عموما از پورت 25 استفاده می کند. SMTP می تواند به صورت سرور داخلی یا از طریق ارائه دهندگان شخص ثالث مدیریت شود. سرورهای داخلی نیاز به دانش فنی و منابع بیشتری دارند اما سرورهای شخص ثالث، مدیریت ساده تری داشته و ممکن است محدودیت هایی در تعداد ارسال ایمیل ها اعمال کنند.