SMTP یک پروتکل TCP/IP است که در ارسال و دریافت ایمیل استفاده میشود. SMTP بیشترین استفاده را توسط کلاینتهای ایمیل، از جمله Gmail، Outlook، Apple Mail و Yahoo Mail دارد. SMTP میتواند ایمیل را ارسال و دریافت کند، اما کلاینتهای ایمیل معمولاً از یک برنامه با SMTP برای ارسال ایمیل استفاده میکنند. زیرا SMTP در صف کردن پیامها در سمت دریافت کننده محدود است، معمولاً با Post Office Protocol 3 (POP3) یا Internet Message Access Protocol (IMAP) استفاده میشود، که به کاربر اجازه میدهد پیامها را در صندوق پستی سرور ذخیره کند و آنها را به طور دورهای از سرور دانلود کند. SMTP معمولاً محدود به و وابسته به ارسال پیامها از فرستنده به گیرنده است.
سرور SMTP چیست؟
سرور SMTP یک برنامه یا کامپیوتر است که ایمیل را میفرستد، دریافت میکند و رله میکند. این سرورها معمولاً از TCP در پورت 25 یا 587 استفاده میکنند. شماره پورت فرآیندهای خاص را هنگام ارسال پیام اینترنتی یا شبکه به سرور شناسایی میکند. تمام دستگاههای متصل به شبکه با پورتهای استانداردی مجهز هستند که دارای یک شماره اختصاصی هستند. هر شماره برای پروتکلهای خاص و عملکردهای مرتبط با آنها محفوظ است.
سرورهای SMTP به حالت گوش دادن همیشه روشن تنظیم شدهاند و به محض اینکه یک سرور یک اتصال TCP از یک کلاینت را تشخیص میدهد، فرآیند SMTP یک اتصال به پورت 25 را برای ارسال ایمیل آغاز میکند.
سرورهای SMTP خروجی پیامها را برای کاربران میفرستند. کلاینتهای ایمیل که برای خواندن و ارسال ایمیلها استفاده میشوند، باید همچنین آدرس IP سرور SMTP را داشته باشند. برای مقابله با مشکلاتی مانند هرزنامه، مدیران سرور باید کنترل کنند که کدام کلاینتها میتوانند از سرور استفاده کنند. آنها میتوانند این کار را با محدود کردن کاربران بر اساس آدرس IP یا، احتمالاً، با اعمال یک سیستم یا دستوری که نیاز به تأیید هویت کلاینتها دارد، انجام دهند.
چگونگی کارکرد SMTP
SMTP از مدل کلاینت-سرور به شرح زیر استفاده میکند:
- یک سرور ایمیل از SMTP برای ارسال یک پیام از یک کلاینت ایمیل به یک سرور ایمیل دیگر استفاده میکند.
- سرور ایمیل SMTP را به عنوان یک سرویس رله برای ارسال ایمیل به سرور ایمیل دریافت کننده استفاده میکند.
- سرور ایمیل دریافت کننده از یک کلاینت ایمیل برای دانلود ایمیلهای ورودی از طریق IMAP، به عنوان مثال، استفاده میکند و آن را در صندوق ورودی گیرنده قرار میدهد.
بنابراین، به عنوان مثال، وقتی یک کاربر دکمه "ارسال"
را کلیک میکند، یک اتصال TCP برقرار میشود که به یک سرور SMTP متصل است. وقتی سرور SMTP اتصال TCP را از یک کلاینت دریافت میکند، فرآیند SMTP یک اتصال از طریق پورت 25 برای ارسال ایمیل شروع میکند.
از اینجا، کلاینت SMTP به سرور میگوید که چه کاری با اطلاعاتی مانند آدرسهای ایمیل فرستنده و گیرنده و محتوای ایمیل انجام دهد. سپس یک عامل انتقال پست (MTA) بررسی میکند که آیا هر دو آدرس ایمیل از همان دامنه ایمیل هستند یا خیر. اگر از همان دامنه باشند، ایمیل ارسال میشود؛ اگر نباشد، سرور از سیستم نام دامنه (DNS) برای شناسایی دامنه گیرنده استفاده میکند و سپس آن را به سرور صحیح میفرستد.
سپس گیرنده از پروتکلهای IMAP یا POP3 برای دریافت ایمیل استفاده میکند.
دستورات در SMTP به صورت خودکار صادر میشوند بدون اینکه نیاز باشد کاربر پایانی آنها را وارد کند. به عنوان مثال، دستور HELO دستوری است که کلاینت ایمیل خود را به یک سرور معرفی میکند. دستورات دیگر SMTP شامل موارد زیر است:
- MAIL. این دستور برای شروع یک انتقال پیام استفاده میشود. این به سرور SMTP میگوید که یک معامله جدید شروع میشود.
- RCPT. این دستور پس از MAIL آمده است. آن را آدرس ایمیل تکراری شناسایی میکند.
- DATA. این دستور شروع به انتقال دادهها بین کلاینت و سرور میکند. محتوای پیام به سرور SMTP منتقل میشود.
- QUIT. هنگامی که ایمیل ارسال میشود، کلاینت این دستور را به سرور میفرستد تا اتصال را متوقف کند.
- RSET. این دستور برای لغو معامله ایمیل استفاده میشود. دستور به سرور فرستاده میشود، که در آن تمام دادهها درباره ایمیل حذف میشوند.
SMTP در مقابل IMAP و POP
SMTP که بر روی یک سرور SMTP میزبانی میشود، برای ارسال، رله یا ارسال پیامها از یک کلاینت ایمیل استفاده میشود و برای دریافت پیامها استفاده نمیشود؛ به جای آن از IMAP و POP استفاده میشود.
IMAP یک پروتکل استاندارد بازیابی ایمیل است که پیامهای ایمیل را مدیریت و بازیابی میکند. این ایمیل را بر روی یک سرور نگه میدارد و سپس آن را در دستگاههای مختلف همگام میکند. IMAP به کاربران اجازه میدهد پیامها را در پوشهها سازماندهی کنند، پیامها را علامت گذاری کنند و پیامهای پیشنویس را بر روی سرور ذخیره کنند. کاربران همچنین میتوانند چندین برنامه کلاینت ایمیل داشته باشند که با سرور ایمیل همگام میشوند تا نشان دهند کدام پیامها خوانده یا خوانده نشده هستند.
IMAP به عنوان واسطه بین سرور ایمیل و کلاینت ایمیل عمل میکند. وقتی کاربران ایمیل را با استفاده از IMAP میخوانند، آنها را از سرور میخوانند. آنها ایمیل را دانلود یا در دستگاه محلی ذخیره نمیکنند.
بی
شتر سرورها و کلاینتهای ایمیل از POP پشتیبانی میکنند و آن را برای دریافت ایمیلها از سرورهای از راه دور و ارسال آنها به یک کلاینت محلی استفاده میکنند. POP یک پروتکل کلاینت-سرور یک طرفه است که در آن ایمیلها دریافت و بر روی سرور ایمیل نگهداری میشوند. POP همچنین به کاربران اجازه میدهد ایمیلها را از یک سرور به کلاینت دانلود کنند تا گیرنده بتواند ایمیل را بصورت آفلاین مشاهده کند.
وقتی با هم استفاده میشوند، SMTP و یا IMAP یا POP پیامهای ایمیل را منتقل میکنند.
در حالی که POP به عنوان یک سرویس ذخیره و ارسال در نظر گرفته میشود، IMAP به عنوان یک سرور فایل از راه دور فکر میکند، زیرا کاربر میتواند ایمیل را بر روی سرور ذخیره کند و به آن از هر دستگاه یا مکانی که نیاز دارد دسترسی پیدا کند.
POP و IMAP توسط کلاینتهای ایمیل مدرن و سرورهای وب پشتیبانی میشوند. اما بر خلاف POP، IMAP همچنین ایمیلها را در دستگاهها یا کلاینتهای متعدد همگام میکند.
SMTP در مقابل ESMT
Extended Simple Mail Transfer Protocol (ESMTP) یک افزونه برای SMTP اصلی برای ارسال ایمیلها است که از پشتیبانی از فایلهای گرافیکی، صوتی و تصویری، همچنین متن در زبانهای مختلف پشتیبانی میکند. ESMTP در سال 1995 برای کاربرانی که میخواستند فایلهای چندرسانهای را به ایمیلها پیوست کنند، منتشر شد. پروتکل بهروز شده تواناییهای جدیدتری مانند حفاظت از سرورها در حالی که پهنای باند را ذخیره میکند را فراهم کرد. بیشتر سرورها و کلاینتهای ایمیل تجاری از ESMTP پشتیبانی میکنند.
بر خلاف ESMTP، فایلهای چندرسانهای نمیتوانند مستقیماً به یک ایمیل در SMTP پیوست شوند بدون کمک از Multipurpose Internet Mail Extensions (MIMEs). به همین ترتیب، ESMTP به کاربران اجازه میدهد تا اندازه ایمیلها را کاهش دهند، در حالی که SMTP این کار را انجام نمیدهد.
SMTP در مقابل HTTP APIs
SMTP از سال 1982 استفاده شده است و همچنان پروتکل ایمیل رایجترین برای ارسال یک پیام ایمیل است. با این حال، یک گرایش به سمت استفاده از رابط برنامهنویسی برنامههای کاربردی (APIs) Hypertext Transfer Protocol (HTTP) مبتنی بر ابر برای ارسال و دریافت ایمیل وجود دارد.
APIs HTTP دو مزیت را ارائه میدهند: اول، ارتباط بین کلاینت ایمیل و سرور - به عنوان مثال، هنگام استفاده از برنامههای موبایل - از SMTP سریعتر است زیرا APIs HTTP نیاز به کمترین دستورات رفت و برگشت برای تأیید هویت فرستنده و گیرنده دارد. دوم، APIs قابلیتهایی را ارائه میدهند که با استفاده از SMTP در دسترس نیست.
SMTP و سیستمهای مبتنی بر Unix
در سیستمهای مبتنی بر Unix، Sendmail همچنان سرور ایمیل SMTP مورد استفاده بیشتر برای ایمیل است. Sendmail ارائه دهنده ایمیل پشت صحن
ه برای بسیاری از سرورهای ایمیل است. این برنامه از SMTP برای ارسال ایمیل استفاده میکند و از POP و IMAP برای دریافت ایمیل استفاده میکند.
SMTP و امنیت
SMTP به طور اصلی برای ارسال ایمیلها طراحی شده است و از رمزگذاری یا تأیید هویت پیشرفته پشتیبانی نمیکند. به همین دلیل، SMTP میتواند آسیبپذیر باشد در برابر حملات مانند هرزنامه، اسکریپتهای خودکار و حملات DDoS.
برای مقابله با این مشکلات، برخی از سرورهای SMTP از تکنیکهای امنیتی مانند رمزگذاری SSL یا TLS برای ارسال ایمیل استفاده میکنند. این تکنیکها میتوانند اطلاعات را در حین انتقال از یک سرور به سرور دیگر محافظت کنند.
به علاوه، برخی سرورهای SMTP از تأیید هویت پیشرفته استفاده میکنند تا مطمئن شوند که فقط کاربران معتبر میتوانند از سرور استفاده کنند. این میتواند شامل تأیید هویت کاربر با استفاده از یک نام کاربری و گذرواژه باشد، یا استفاده از یک سیستم تأیید هویت دومرحلهای.
نتیجهگیری
SMTP یک پروتکل ارسال ایمیل است که برای ارسال، دریافت و رله ایمیلها استفاده میشود. این پروتکل برای ارسال ایمیلها از یک کلاینت به یک سرور، و سپس به یک سرور دیگر استفاده میشود. SMTP از دستورات خودکار استفاده میکند تا ایمیلها را از فرستنده به گیرنده منتقل کند. SMTP همچنین با پروتکلهای دیگری مانند IMAP و POP برای دریافت ایمیلها کار میکند.
برای افزایش امنیت، برخی سرورهای SMTP از رمزگذاری و تأیید هویت پیشرفته استفاده میکنند. با این حال، SMTP همچنان میتواند آسیبپذیر باشد در برابر حملات مانند هرزنامه و حملات DDoS.
اگرچه SMTP همچنان پروتکل ایمیل رایجترین برای ارسال یک پیام ایمیل است، یک گرایش به سمت استفاده از APIs HTTP مبتنی بر ابر برای ارسال و دریافت ایمیل وجود دارد. APIs HTTP میتوانند سرعت ارتباط بین کلاینت ایمیل و سرور را افزایش دهند و قابلیتهایی را ارائه دهند که با استفاده از SMTP در دسترس نیست.