کاربران اینترنت دائماً در حال ارسال و دریافت ایمیل هستند. روزانه میلیاردها ایمیل بین کاربران مبادله میشود. ایمیل یکی از روشهای پرکاربرد برای برقراری ارتباط بین افراد و مشاغل است. محوریت اصلی فرایند پیچیده ارسال و دریافت ایمیل پروتکل SMTP است. در این مطلب شیوه عملکرد این پروتکل را با جزئیات کامل مورد بررسی قرار میدهیم.
SMTP چیست؟
حسابهای کاربری، ایمیل کلاینتها و سرورها به راحتی از طریق پروتکلهای اینترنت با یکدگیر ارتباط برقرار میکنند و اطلاعاتشان را مبادله میکنند. SMTP، POP و IMAP جزو پروتکلهای ایمیل پرکاربرد محسوب میشوند.
از پروتکل ایمیل SMTP برای ارسال ایمیل از حسابی به حساب دیگر و در بستر اینترنت استفاده میشود. SMTP همچنین تنها پروتکل اختصاصی برای ارسال ایمیل است. بسیاری از ایمیل کلاینتها (از جمله اوت لوک، اپل میل، جی میل و یاهو) برای ارسال پیام از فرستنده به گیرنده، از SMTP استفاده میکنند.
سرور SMTP چیست؟
مشابه همه سرورها، سرور SMTP هم یک برنامه کاربردی است که به سایر برنامههای کاربردی موجود در شبکه یا همان کلاینتها یک سرویس ارایه میدهد. سرور SMTP مدیریت ارسال، دریافت و پاسخ به ایمیلها را برعهده دارد.
تصور کنید که این سرورها همان ادارههای پست دنیای واقعی هستند. وقتی نامهای از شهر A به شهر B ارسال میکنید، این نامه ابتدا وارد دفتر پست محلی شهر A میشود. سپس در آنجا پردازش شده و به اداره پست شهر B ارسال میشود. اداره پست مسئولیت تحویل پیام به مقصد نهایی را برعهده دارد. در سرورهای SMTP هم فرایند مشابهی تکرار میشود. البته این فرایند معمولاً طی مدت فقط چند دقیقه به جای چند روز انجام میشود.
ممکن است به اصطلاح پورت SMTP هم برخورد کرده باشید. این پورتها، نقاط ارتباطی هستند که انتقال دادههای ایمیل از طریق پروتکل SMTP را در شبکه برعهده دارند.
SMTP چگونه کار میکند؟
بهترین روش برای توضیح شیوه عملکرد SMTP، تشریح فرایند ارسال پیام، قوانین و فرمانهای حاکم بر آن و همچنین خطاهای احتمالی در این فرایند است. از این مرحله به بعد، موضوع کمی فنیتر میشود اما سعی میکنیم این پروتکل را در قالب بخشهای قابل درک توضیح دهیم. البته در این مقاله توضیحاتی درباره آشنایی با تعریف و مقدمات پروتکل SMTP توضیحاتی دادهایم، که با مطالعه آن میتوانید اطلاعاتی مقدماتی بدست آورید.
پس از مشخص شدن سرور SMTP، ایمیل کلاینتها میتوانند به آن متصل شده و با آن ارتباط برقرار کنند. وقتی فرستنده روی دکمه ارسال ایمیل کلیک میکند، ایمیل کلاینت یک ارتباط SMTP با سرور برقرار میکند تا بتواند پیام را ارسال کند. این ارتباط SMTP بر اساس یک کانکشن TCP یا همان Transmission Control Protocol برقرار میشود.
از اینجا، کلاینت SMTP از فرمانهای خاصی استفاده میکند تا به سرور اعلام کند چه کارهایی انجام دهد و دادههایی مثل آدرس ایمیل فرستنده، آدرس ایمیل گیرنده و محتوای ایمیل را انتقال دهد. MTA[1] یا همان مأمور انتقال نامه بررسی میکند که آیا هر دو آدرس متعلق به یک دامنه ایمیل خاص مثل جیمیل هستند یا خیر:
- اگر هر دو متعلق به یک دامنه بودند، ایمیل ارسال میشود؛
- در غیر این صورت از DNS[2] برای تشخیص دامنه گیرنده و سپس ارسال پیام به سرور مناسب استفاده میشود.
فرمانهای پایه SMTP
فرمانهای SMTP مجموعه کدهایی هستند که امکان انتقال پیامهای ایمیلی بین سرورها را فراهم میکنند. در ادامه با مهمترین فرمانهای SMTP آشنا میشویم:
- HELO یا EHLO (Hello): استفاده از این فرمان برای شروع کل فرایند ارسال پیام ضروری است. ایمیل کلاینت، خودش را به سرور SMTP معرفی میکند. این فرمان شروع یک گفتگو است و معمولاً در این مرحله کلاینت یک فرمان HELO به همراه نام دامنه و آیپی خودش به سرور ارسال میکند.
- MAIL FROM: پس از فرمان معرفی، فرستنده کدی را که مشخص میکند پیام از سمت چه شخصی ارسال شده، منتشر میکند. این کد آدرس ایمیل را مشخص کرده و به سرور SMTP اعلام میکند که به زودی یک تراکنش جدید شروع میشود. سپس سرور همه چیز را بازنشانی کرده و آماده پذیرش آدرس ایمیل میشود و پس از پذیرش با کد 250 OK پاسخ میدهد.
- RCPT TO (Recipient To): فرمانِ پس از کد پاسخ 250 OK، تعیین میکند که ایمیل برای چه شخصی ارسال میشود. سرور SMTP همچنان با همان کد پاسخ میدهد که در این مرحله میتوان یک فرمان RCPT TO دیگر را با یک آدرس ایمیل فرستنده متفاوت ارسال کرد. میتوان این مرحله را با توجه به اینکه چند نفر ایمیل را دریافت میکنند، چندین بار تکرار کرد.
- DATA: این فرمان، انتقال دادهها بین کلاینت و سرور را فعال میکند. کل محتوای پیام به سرور SMTP ارسال میشود که سپس با کد 345 پاسخ میدهد. محتوای پیامها به سرور منتقل میشوند و در این محتوا، یک نقطه در یک خط نشان دهنده انتهای پیام است. در صورت پذیرش و آمادگی برای انتقال، سرور یک کد 250 OK دیگر ارسال میکند. در این مرحله، پیام فعال شده و در مسیر رسیدن به گیرنده است.
- QUIT: وقتی ایمیل ارسال شد، کلاینت فرمان QUIT را برای سرور ارسال میکند تا ارتباط خاتمه پیدا کند. در صورتی که ارتباط با موفقیت خاتمه یافت، سرور با کد 221 پاسخ میدهد.
- RSET (Reset): این فرمان زمانی برای سرور ارسال میشود که تراکنش مدنظر باید رد شود. این فرمان باعث بسته شدن اتصال نمیشود اما همه چیز را بازنشانی کرده و همه دادههای قبلی مربوط به ایمیل و طرفهای دخیل در آن را حذف میکند. از این فرمان معمولاً هنگام بروز خطا مثل اشتباه در نوشتن اطلاعات گیرنده که مستلزم از سر گرفتن کل فرایند است، استفاده میشود.
این فرمانها حکم زبانی را دارند که ایمیل سرورها میتوانند با استفاده از آنها با هم ارتباط برقرار کنند. فرمانهای SMTP دیگر مثل AUTH و STARTTLS اقدامات احراز هویت و ارتقای امنیت را انجام میدهند. گفتگوی این سرورها شبیه به تصویر زیر است:
آشنایی با کدهای خطای SMTP
فرایند ارسال پیام همیشه به صورت روان و بیوقفه اجرا نمیشود. امکان دفع، مسدود شدن یا بروز مشکلات دیگری که مانع از ارسال ایمیل میشوند وجود دارد. در این حالت، سرور دریافت کننده پیام میتواند با استفاده از کدهای خطای SMTP به شما درباره بروز مشکل اطلاعرسانی کند. آشنایی با این کدهای خطا برای عیبیابی و رفع موانع ارسال ایمیل مفید است.
برای مثال، دو گروه از خطاهای رایج SMTP عبارتند از:
- 4.X.X Persistent Transient Failure: با این کد خطا عدد 4 شروع شده و پس از آن 2 رقم دیگر قرار میگیرد. این کدها معمولاً دلالت بر وقوع یک خطای موقت در سرور ایمیل دارند. ممکن است با تلاش مجدد این پیام خطا رفع شود اما سرورها عموماً از این کدها برای رد کردن فرستندههای غیرقابل اعتماد استفاده میکنند.
- 5.X.X Permanent Error: این کدهای خطا با عدد 5 شروع میشوند و پس از آن 2 رقم قرار میگیرند. این خطاها معمولاً نشان میدهند که ارتباط SMTP قطع شده است. اگر سعی کنید دوباره ایمیل را ارسال کنید، ممکن است همچنان به همان خطا برخورد کنید.
SMTP با سایر پروتکلهای ایمیل چه تفاوتی دارد؟
اگرچه تعداد پروتکلهای ایمیل بیشمار است ولی SMTP تنها پروتکل ارسال (یا Pushing) ایمیل از یک ایمیل سرور ناشناس به سروری دیگر است. در حالی که POP و IMAP پروتکلهایی برای دریافت (یا Pulling) نامه از ایمیل سرور خود گیرنده هستند. بنابراین POP و IMAP ارسال ایمیل را به سرورهای تأیید شده محدود میکنند و نمیتوانید از آنها برای ارتباط با خارج از شبکه خودتان استفاده کنید.
در ادامه شیوه عملکرد POP و IMAP و تفاوت آنها با SMMTP را به صورت کامل مورد بررسی قرار میدهیم.
POP
از پروتکل POP[3] برای دریافت پیامهای ورودی استفاده میشود. مهمترین نسخه این پروتکل POP3 است که آخرین بار در سال 1988 به روزرسانی شد.
نام این پروتکل به این دلیل انتخاب شده که مثل یک اداره پست واقعی کار میکند اما در دنیای دیجیتال. POP3 ایمیلها را دریافت کرده و آنها را برای کلاینتها نگه میدارد تا وقتی که ایمیلی را انتخاب کنند. همه ایمیلها دانلود شده و به صورت محلی ذخیره میشوند در نتیجه راهکار مناسبی برای افرادی هست که فقط از یک کامپیوتر برای بررسی ایمیل استفاده میکنند. مشاغل معمولاً از این پروتکل استفاده میکنند تا کارمندان بتوانند ایمیلها را به صورت آفلاین بررسی کنند.
پروتکلهای POP و SMTP چه تفاوتی دارند؟
- SMTP یک پروتکل انتقال پیام است اما POP یک پروتکل دسترسی به پیام است. به عبارت دیگر از SMTP برای ارسال ایمیل از کاربری به کاربر دیگر و از POP برای دریافت ایمیل استفاده میشود.
- از SMTP دو بار استفاده میشود. بار اول برای برقراری ارتباط و ارسال اطلاعات بین ایمیل سرور و فرستنده و بار دوم هنگام ارسال اطلاعات و اتصال به گیرنده. از POP فقط یک بار بین گیرنده و ایمیل سرور استفاده میشود.
IMAP
IMAP[4] پروتکل پیامگزینی است. به طور خلاصه، IMAP پیامها را روی یک ایمیل سرور ذخیره میکند اما کاربر میتواند برای بررسی و پیکربندی ایمیلها، به این سرور دسترسی پیدا کند. فرق این پروتکل و POP این است که IMAP از یک سرور ابر استفاده میکند در نتیجه هر دستگاهی میتواند ایمیلها را احراز هویت و دستهبندی کند. بسیاری از کاربران IMAP را به دلیل راحتی و کارایی بیشتر، به POP ترجیح میدهند.
اگر تا به حال یک ایمیل کلاینت را تنظیم کرده باشید، احتمالاً در یک رابط کاربری، با IMAP روبرو شدهاید.
IMAP و SMTP چه تفاوتی دارند؟
SMTP یک پروتکل انتقال پیام است اما IMAP مشابه POP یک پروتکل دسترسی به پیام است. بنابراین، SMTP برای ارسال پیام و مدیریت پیامهای خروجی کاربرد دارد اما IMAP فقط پیامها را دریافت کرده و با ایمیلهای ورودی سروکار دارد.
برای آشنایی بیشتر با این پروتکلها و نحوه عملکردشان «مقایسه پروتکلهای IMAP، POP3 و SMTP» و «معرفی مهمترین پروتکلهای امنیت ایمیل» را بخوانید.
راهاندازی سرور SMTP اختصاصی بهتر است یا استفاده از یک سرویس ایمیل شخص ثالث؟
برای تنظیم و استفاده از یک سرور SMTP، میتوانید خودتان این کار را انجام دهید یا از یک سرویس شخص ثالث استفاده کنید.
اینکه کدام گزینه بهتر است، کاملاً بستگی به نیازها و منابع در اختیار شما دارد. در ادامه هر دو را بررسی کرده و نقاط ضعف و قوت آنها را مرور میکنیم تا در نهایت بهترین تصمیم را بگیرید.
مزایا و معایب راهاندازی یک سرور SMTP اختصاصی
مزایا و معایب راهاندازی یک سرور SMTP اختصاصی عبارتند از:
مزایا
- عدم محدودیت در زمینه حجم ایمیلهای ارسالی: ارایهدهندگان سرویس ایمیل معمولاً ارایهدهندگان سرویس اینترنت (ISP[5]) و بعضی از میزبانهای وب حجم ایمیلهای روزانه را محدود میکنند. با سرور SMTP اختصاصی خودتان میتوانید تعداد بیشماری ایمیل در هر زمان که خواستید ارسال کنید.
- نظارت کامل بر تحویل ایمیلها: صرفنظر از اینکه پس از کلیک روی دکمه Send چه اتفاقی میافتد، در هر صورت اطلاعات مفید مربوط به تحویل ایمیل را دریافت میکنید. میتوانید بررسی کنید که آیا ایمیل به دست گیرنده رسیده یا خیر. همچنین میتوانید کدهای خطای احتمالی را مرور و بررسی کنید.
- فهرست ایمیل شما خصوصی است: اطلاعات فهرست ایمیلتان را با هیچ شخص دیگری به اشتراک نمیگذارید در نتیجه حریم خصوصی سازمان و دادههای مشتریان شما حفظ میشود.
معایب
- نیاز به صرف زمان، پول و تلاش بیشتر: مدیریت یک سرور SMTP مستلزم صرف منابع زیادی است. همواره باید همه چیز را تحت نظارت داشته و حتی ممکن است نیاز به استخدام یک کارشناس یا تیم اختصاصی داشته باشید. البته این تلاشها مربوط به مرحله پس از تنظیم و راهاندازی سرور هستند. برای بسیاری از مشاغل، این روش بسیار پرهزینه است.
- این سیستم محلی است: یکی دیگر از معایب راهاندازی یک سرور SMTP اختصاصی این است که چنین سروری محلی است. بنابراین در برابر مشکلاتی مثل قطع برق یا اینترنت در منطقه مربوطه، آسیبپذیر است. میتوانید راهکارهایی مثل سرورهای پشتیبان و شکست امن[6] را پیادهسازی کنید اما پیادهسازی این راهکارها مستلزم داشتن اطلاعات تخصصی است.
- احتمال برخورد با مشکلات تحویل ایمیل و امنیت: رسیدگی به مسئله قابلیت تحویل ایمیل زمانبر است مگر اینکه ایمیل را برای افراد محدود/ خاصی ارسال کنید. همچنین باید از سرور ایمیل خودتان در برابر دسترسیهای غیرمجاز و اسپم حفاظت کنید. در حالی که سرویسهای شخص ثالث همه کارهای لازم را در این زمینه انجام داده و فرایندهای خاصی برای تشخیص تنظیمات ضروری دارند.
مزایا و معایب استفاده از یک سرویس شخص ثالث
واضح است که سرورهای اختصاصی با وجود مزایای مختلف برای همه مناسب نیستند. در ادامه مزایا و معایب استفاده از سرویسهای ایمیل شخص ثالث را مورد بررسی قرار میدهیم:
مزایا
- کاهش زحمت راهاندازی و مدیریت سرور: در این حالت، ارایهدهنده سرویس ایمیل همه کارهای لازم را برای شما انجام میدهد. شما نیازی به اطلاعات فنی زیاد یا صرف زمان و نظارت بر ایمیل سرور ندارید و میتوانید برای رفع مشکلات با پشتیبان فنی سرویس تماس بگیرید.
- امنیت بیشتر: در صورت از دسترس خارج شدن سرویس، ارایهدهندگان سرویس ایمیل معمولاً چند گزینه پشتیبان برای حفظ امنیت ایمیلها دارند. این سرویسها همچنین سعی میکنند همواره محصولاتشان را در سطح جدیدترین استانداردهای صنعتی حفظ کنند تا امنیت دادههای شما همواره برقرار باشد.
- مقرون به صرفه بودن: با صرف هزینه برای تهیه سرویسی که از آن استفاده میکنید، نیازی نیست که خودتان دائماً با ایمیل سرور سروکار داشته باشید. بنابراین در وقت و هزینهها صرفهجویی خواهد شد چون لزومی ندارد که شخصی را برای نظارت و نگهداری از سرورها استخدام کنید یا برای رفع مشکلات امنیتی و تحویل ایمیلها، هزینه زیادی صرف کنید.
- اطمینان بیشتر به تحویل ایمیلها: سرویسهای شخص ثالث روابط طولانی مدتی با ارایهدهندگان خدمات ایمیل و ISPها دارند در نتیجه دارای تجربیات بیشتری برای حل مشکلات و انجام تنظیمات، متناسب با الزامات دریافتکنندگان ایمیل مختلف هستند. این سرویسها همچنین فرایندهای خاصی برای نظارت و حذف آدرسها از فهرست دارند. علاوه بر این، کارمندان متخصص زیادی در زمینه تحویل پیامها در اختیار دارند بنابراین نیازی نیست که نگران این مسائل باشید.
معایب
- وابستگی به دیگران: در صورت بروز مشکل برای ایمیل سرور، جهت رفع مشکل وابسته به یک شرکت دیگر خواهید بود. در صورت انتخاب این مسیر، حتماً به دنبال سرویس و تیم متخصصی باشید که اولویتشان پشتیبانی از مشتریان است.
نکته: میتوانید اعتبار ارایهدهندگان سرویس ایمیل را در سایتهای نظرسنجی مخصوص یا با مرور گفتگوهای کاربران در توئیتر و سایر شبکههای اجتماعی بررسی کنید.
- کار کردن با شرایط و ضوابط یک شرکت شخص ثالث: در نهایت، شما باید از شرایط استفاده از خدمات یک شرکت دیگر پیروی کنید که ممکن است تعداد ایمیلهای قابل ارسال را محدود کند. البته احتمال تأثیرگذاری چشمگیر شرایط و ضوابط این سرویسها بر حجم ایمیلهای قابل ارسال (چه ایمیلهای تراکنشی و چه تبلیغاتی) بسیار کم است.
در مجموع، انتخاب یک سرویس شخص ثالث، برای بیشتر مشاغل راحتترین و کارآمدترین گزینه است. در این روش ریسک و دردسر کمتری متوجه شما خواهد بود و میتوانید بدون نیاز به نگرانی درباره جنبههای فنی، بر استراتژی ایمیل خودتان متمرکز شده و ایمیل ارسال کنید.
اهمیت انتخاب یک سرویس مطمئن
به طور خلاصه، دنیای ایمیل بر اساس پروتکل SMTP کار میکند و با اینکه خود شما هم میتوانید یک سرور SMTP تنظیم و راهاندازی کنید، چالشهای این روش زیاد است به خصوص اگر نیروی متخصص و آشنا با پروتکلهای ایمیل و منابع کافی را در دسترس ندارید و نگران مسائل امنیتی هستید.
مقایسه دقیق بهترین ارایهدهندگان سرویس SMTP
اگر به دنبال یک سرویس ایمیل SMTP برای کسبوکارتان هستید، در تصویر زیر یک مقایسه مفید از امکانات، هزینهها و کاربردهای ایدهآل سرویسهای ایمیل مختلف مشاهده میکنید.
[1] Message Transfer Agent
[2] Domain Name System
[3] Post Office Protocol
[4] Internet Message Access Protocol
[5] internet service provider
[6] در روش شکست امن، در صورت وقوع حادثه تجهیزات، کاربران و محیط زیست دچار کمترین آسیب میشوند.
منبع: postmarkapp