help-header

SMTP چیست؟

کاربران زیادی در سرتاسر جهان در طول شبانه روز از ایمیل استفاده می‌کنند اما نمی‌دانند چگونه این‌کار انجام می‌شود. دانستن عملکرد آن به‌طور خاص برای دارندگان وب‌سایت و برنامه‌نویسان کمک شایانی به رفع مشکل‌ها و همچنین استفاده صحیح از آن می‌کند. معروف‌ترین و پراستفاده‌ترین پروتکل برای ارسال ایمیل از طریق اینترنت Simple Transfer Protocol یا SMTP است. گفتنی است در شبکه‌های داخلی که سیستم ایمیل مانند Microsoft Exchange استفاده می‌شود، SMTP کاربردی نداشته و پروتکل‌های دیگری جایگزین آن است.

SMTP از سال ۱۹۸۰ برای ارسال ایمیل و ضمیمه‌هایش برای بسیاری از مدل‌های مختلف کامپیوتر استفاده می‌شود. علت محبوبیت SMTP کاربری آسان، قابلیت حمل و سرعت زیاد است که همین موضوع باعث شده که در نهایت آن‌را استانداردترین پروتکل مورد استفاده برای انتقال ایمیل بین سیستم‌های کامپیوتری در اینترنت معرفی کنند. البته روش‌های جدیدی هم‌اکنون برای این منظور استفاده شده ولی برای درک مفهوم ایمیل همیشه SMTP به عنوان پایه مطالعه می‌شود. 

 

پورت‌های مورد استفاده در SMTP

در کل SMTP برای اتصال به دنیای اینترنت از ارتباط TCP/IP روی پورت 25 و به‌شکل متن استفاده می‌کند. البته پورت 465 هم برای برای اتصال به‌صورت رمزنگاری و در بستری امن با استفاده از SSL/TLS کاربرد داشته تا اسپم شدن ایمیل‌ها در مقصد را به حداقل برساند. ضمیمه‌های ایمیل هم به صورت رمز شده و با استفاده از MIME (با فرمت ASCII/UTF8) ارسال می‌شود.

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

 

SMTP چگونه کار می‌کند؟

یک پیام از طریق یک برنامه ایمیل مانند Outlook در ویندوز و در دستگاه فرستنده ایجاد می‌شود. متن تایپ شده توسط کاربر، که بدنه‌ی ایمیل نام دارد به همراه دریافت‌کننده(ها)، عنوان، تاریخ و ساعت که مربوط به بخش Header یا سرتیتر ایمیل است در قالب یک پیام ادغام می‌شود. گفتنی است که توضیحات زیر شامل برنامه‌هایی مانند Gmail یا Yahoo Mail به علت پاره ای تفاوت‌ها (به علت این‌که از بستر خود برای ارسال و دریافت ایمیل استفاده می‌کنند)، نیست.

برنامه ایمیل کل پیام را به یک سرور ایمیل توسط پروتکل SMTP و با استفاده از پورت 25 یا 465 می‌فرستد. سرور ایمیل در اصل برنامه‌ای است که در بیش‌تر زمان‌‌ها بر روی سرور ISPها قرار گرفته است. در حالت دیگر زمانی‌که کاربر از خدمات هاست استفاده می‌کند برای ارسال و دریافت ایمیل، پنل ایمیل جداگانه و به‌صورت اختصاصی ایجاد شده که سرویس SMTP درون سرورهای هاست نصب شده است. در مرحله بعد بر روی سرور یاد شده، پیام کاربر توسط SMTP قسمت‌بندی شده و بخش آدرس ایمیل دریافت کننده(ها) که همان فیلدهای TO ،BCC و CC است، خوانده می‌شود. همان‌طور که می‌دانید آدرس هر ایمیل به‌صورت منحصر به فرد است که در این قسمت اگر دریافت کننده مثلن "support@arvancloud.com" باشد، بخش "arvancloud.com" ابتدا جدا شده و سرور به دنبال مکان آن از طریق DNS در بستر اینترنت می‌گردد. سایر بخش‌های ایمیل مانند متن و ضمیمه‌ها هم به‌صورت بخش‌های جدا و در قالب یک پیام ارسال خواهد شد.

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

چنانچه شخص گیرنده از سیستم ایمیل در شبکه داخلی متصل به اینترنت استفاده ‌کند، در سرورهای آن شبکه SMTP دیگری وجود دارد. در این قسمت SMTP با قابلیت ایجاد صف در سرور برای ایمیل‌های دریافتی، طبق مثال گفته شده به دنبال کاربر "Support" خواهد گشت. در نهایت کل پیام به سرویس دریافت‌کننده ایمیل که معمولن پروتکل‌های POP3 یا IMAP است، تحویل داده شده تا در Inbox گیرنده قرار گیرد. البته در حالتی‌که کاربر از کامپیوتر خانگی استفاده ‌کند، ایمیل ها از طریق سرور ISP وی به او ارسال شده و برنامه ایمیل آن از طریق POP3 یا IMAP ایمیل را دریافت می‌کند.

سرورها ایمیل‌ها را در مراحل مختلف ارسال توسط SMTP بررسی نموده و از فعال و واقعی بودن فرستنده اطمینان حاصل می‌کنند. اگر چنانچه در هر مرحله تشخیص داده شد که فرستنده ربات یا اسپمر است ایمیل مستقیم برگشت داده شده یا به پوشه Spam یا Bulk گیرنده ارسال می‌شود.

 

لاگ‌های SMTP

یکی از نکته‌های مهم لاگ‌های مختلف سرور SMTP است. یک برنامه‌نویس یا دارنده هاست و سرور در اینترنت بایستی آشنا به محتوای لاگ‌ها باشد و چنانچه ارسال و دریافت ایمیل با مشکلی مواجه شد بتواند علت آن‌را از محتوای لاگ متوجه شود. از مهم‌ترین مشکل‌ها می‌توان به صحیح نبودن آدرس گیرنده، اسپم بودن ایمیل، خراب بودن سرویس SMTP گیرنده یا فرستنده، بلاک بودن IP یا دامنه فرستنده در سمت سرور گیرنده، مشکل در پارامترهای ایمیل ارسالی مانند استفاده از کاراکترهای نامعتبر در محتوا یا آدرس‌های دریافت‌کننده، استفاده از ضمیمه‌های نامعتبر یا ناقص، پرشدن سرور دریافت‌کننده ایمیل و مشکل در بستر ارتباطی، اشاره نمود. همچنین در دنیای برنامه‌نویسی، برنامه‌نویس‌ها می‌توانند از این پروتکل در کد برنامه و با استفاده از فرمان‌های آماده جهت ارسال ایمیل استفاده کنند.

 

در پایان می‌توان اشاره کرد که SMTP یک پروتکل رایگان است، ولی شرکت‌های متعددی با اضافه کردن یک سری قابلیت خدمات SMTP را با دریافت هزینه انجام می‌دهند. این خدمات شامل ارسال ایمیل انبوه تبلیغاتی بدون اسپم شدن، تجزیه و تحلیل ایمیل‌ها مانند گزارش‌سازی یا خواندن لاگ‌ها به‌صورت کاربرپسند و همچنین ایجاد قابلیت کار با محیط‌های توسعه وب همچون وردپرس است.