آشنایی با تعریف و مقدمات پروتکل SMTP

آشنایی با تعریف و مقدمات پروتکل SMTP

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

 

پروتکل SMTP چیست؟

SMTP یک پروتکل شبکه مبتنی بر متن و اتصال محور و جزو خانواده پروتکل‌های اینترنت است و در لایه کاربرد (هفتمین لایه از مدل OSI) قرار دارد. این پروتکل نیز مشابه سایر پروتکل‌های شبکه شامل قوانین خاصی برای برقراری ارتباط صحیح بین کامپیوترهای یک شبکه است. SMTP وظیفه ارسال و هدایت ایمیل‌ها از فرستنده به گیرنده را بر عهده دارد.

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

دانستی‌ها: Sendmail از جمله اولین عوامل انتقال پیام (MTA) بود که از پروتکل SMTP پشتیبانی کرد.

در ادامه آدرس سرور SMTP و پورت‌های SMTP محبوب‌ترین سرویس‌های ایمیل را مشاهده می‌کنید:

 

نام سرویس ایمیل

آدرس سرور SMTP

پورت SMTP

یاهو

smtp.mail.yahoo.com

465

AOL

smtp.aol.com

587

اوت‌لوک

smtp.live.com

587

جی‌میل

smtp.gmail.com

587 (TLS/STARTTLS), 465 (SSL)

 

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

برای افزایش درک پروتکل SMTP باید آشنایی مقدماتی با نحوه عملکرد ایمیل داشته باشید. در مجموع شیوه کار ایمیل به صورت زیر است:

  1. کلاینت SMTP یا همان فرستنده، ایمیل را در سرور SMTP (یعنی ایمیل سرور خروجی) ارائه‌دهنده سرویس ایمیل بارگذاری می‌کند. این کار از طریق یک اپلیکیشن وب‌میل در مرورگر یا یک نرم‌افزار ایمیل (که در اصطلاح فنی به آن MUA گفته می‌شود) مثل Windows Live Mail یا Mozilla Thunderbird انجام می‌شود.
  2. سپس سرور SMTP با سرور DNS تماس می‌گیرد و این سرور هم آی‌پی سرور SMTP هدف را (که به آن MTA گفته می‌شود) برای پیدا کردن آدرس گیرنده ایمیل جستجو می‌کند.
  3. سپس سرور SMTP ایمیل را از طریق یک یا چند MTA به سرور SMTP هدف ارسال می‌کند. کلیه فرایندهای هدایت پیام  بر اساس پروتکل SMTP اجرا می‌شوند.
  4. سرور SMTP هدف، ایمیل را به صورت موقت در محل ذخیره پیام‌ها ذخیره می‌کند.
  5. MUA گیرنده، ایمیل را از طریق پروتکل IMAP یا POP3 دانلود می‌کند.

 

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

 

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

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

 

مروری بر فرمان‌ها

بر اساس قرارداد SMTP، هر پیاده‌سازی از پروتکل شبکه حداقل باید شامل 8 فرمان زیر باشد که از کاراکترهای اسکی 7 بیتی تشکیل می‌شوند:

فرمان SMTP

مفهوم

HELO

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

MAIL FROM

کلاینت نام فرستنده ایمیل را مشخص می‌کند.

RCPT TO

کلاینت نام گیرنده ایمیل را مشخص می‌کند.

DATA

کلاینت انتقال ایمیل را شروع می‌کند.

RSET

کلاینت فرایند انتقال را به پایان می‌رساند اما اتصال بین کلاینت و سرور را حفظ می‌کند.

VRFY/EXPN

کلاینت بررسی می‌کند که آیا صندوق پیامی برای انتقال پیام در دسترس هست یا خیر.

 

مروری بر کدهای وضعیت سرور

سرور، با یک کد وضعیت 3 رقمی در قالب یک پیام متنی ساده به هر یک از این فرمان‌های SMTP پاسخ می‌دهد:

کد وضعیت

پیام

این کدها نشان می‌دهند که سرور فرمان را با موفقیت اجرا کرده است:

200

(موفقیت غیر استاندارد)

211

پاسخ وضعیت یا پاسخ راهنما

214

پیام راهنما

220

سرور آماده نشست SMTP است

221

سرور اتصال را خاتمه می‌دهد

250

اقدام درخواست شده برای پیام انجام شد

251

کاربر محلی نیست؛ پیام فوروارد می‌شود

252

نمی‌توان کاربر را اعتبارسنجی کرد اما پیام پذیرفته شده و سعی می‌شود ارسال شود

253

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

این کدهای وضعیت نشان می‌دهند که سرور فرمان را درک کرده اما برای پردازش آن به اطلاعات بیشتری نیاز دارد:

354

سرور، ورودی ایمیل را شروع می‌کند.

کدهای وضعیتی که نشان می‌دهند سرور یک خطای موقت را شناسایی کرده اما باز هم ممکن است فرمان پردازش شود:

421

سرور در دسترس نیست، اتصال خاتمه پیدا می‌کند.

450

فرمان اجرا نشد، صندوق ایمیل در دسترس نیست.

451

اقدام خواسته شده رد شد: خطای محلی در پردازش

452

اقدام خواسته شده انجام نشد: سیستم فضای کافی ندارد.

کدهای وضعیتی که نشان می‌دهند سرور یک خطای مهلک را شناسایی کرده و امکان اجرای فرمان وجود ندارد:

500

خطای نحوی، فرمان قابل شناسایی نیست.

501

خطای نحوی در پارامترها یا آرگومان‌ها

502

فرمان پیاده سازی نشده است

503

دنباله فرمان‌ها غلط است.

504

پارامتر فرمان پیاده سازی نشده است.

521

سرور هیچ ایمیلی را قبول نمی‌کند.

530

درخواست دسترسی رد شد؛ نیاز به احرازهویت وجود دارد.

550

اقدام خواسته شده انجام نشد؛ صندوق پیام در دسترس نیست.

551

کاربر محلی نیست؛ لطفاً مسیر فوروارد را امتحان کنید.

552

اقدام خواسته شده رد شد: فراتر رفتن از محدودیت فضای تخصیص یافته

553

اقدام خواسته شده رد شد: نام صندوق ایمیل مجاز نیست.

554

تراکنش با شکست روبرو شد.

 

یک نمونه نشست SMTP

در ادامه یک نمونه از نشست‌های SMTP بین سرور و کلاینت را مشاهده می‌کنید:

طرف مکالمه

کدهای وضعیت و پیام‌های SMTP

توضیحات

سرور:

220 smtp.example.com ESMTP Postfix

پس از برقراری اتصال، سرور SMTP پاسخ می‌دهد.

کلاینت:

HELO relay.example.com

کلاینت SMTP با نام میزبان خودش لاگین می‌کند.

سرور:

250 smtp.example.com, hello

سرور لاگین را تأیید می‌کند.

کلاینت:

MAIL FROM:cjohn@doe.com>

سرور آدرس فرستنده MUA را مشخص می‌کند.

سرور:

250 OK

سرور تأیید می‌کند.

کلاینت:

RCPT TO:<boss@workplace.com>

کلاینت آدرس گیرنده را مشخص می‌کند.

سرور:

250 OK

سرور تأیید می‌کند.

کلاینت:

DATA

کلاینت ارسال ایمیل را شروع می‌کند.

سرور:

354 End data with <CR><LF>.<cR><LF>

سرور، پذیرش ایمیل را شروع می‌کند و اعلام می‌کند که متن ایمیل باید با یک نقطه خاتمه پیدا کند.

 

کلاینت:

From: “John Doe” <john@doe.com>

To: Boss Workplace thoss@workplace.com> Date: Monday, March 12 2018 10:03:42 Subject: Sick note

Hello boss,

Unfortunately, I am sick today and cannot come into work. Thank you for your understanding,

John Doe

کلاینت، متن ایمیل را ارسال می‌کند، با قرار دادن یک خط فاصله پس از Subject: Sick note آن را مشخص می‌کند و نقطه خواسته شده را در انتها قرار می‌دهد.

سرور:

250 OK: queued as 15432

سرور تأیید می‌کند که ایمیل را با موفقیت دریافت کرده و آن را در یک صف قرار می‌دهد.

کلاینت:

QUIT

کلاینت، خاتمه نشست را نشان می‌دهد.

سرور:

221 Goodbye

سرور، اتصال را خاتمه می‌دهد.

 

پروتکل SMTP چه معایبی دارد؟

نقطه ضعف SMTP این است که در صورت برقراری اتصال، کاربران اعتبارسنجی نمی‌شوند. بنابراین ممکن است فرستنده ایمیل قابل اعتماد نباشد. در نتیجه معمولاً از (سرورهای) بازپخش SMTP آزاد برای ارسال اسپم به صورت انبوه استفاده می‌شود. در این روش، مهاجمان از آدرس‌های فرستنده جعلی استفاده می‌کنند تا امکان پیگیری‌شان وجود نداشته باشد (جعل ایمیل). امروزه فناوری‌های امنیتی مختلفی برای مقابله با سوءاستفاده از سرورهای SMTP وجود دارد. برای مثال ایمیل‌های مشکوک رد شده یا به قرنطینه (سرور اسپم) فرستاده می‌شوند. برای انجام این کار از پروتکل‌های شناسایی مثل DomainKeys، فریم‌ورک سیاست فرستنده (SPF[3]) یا فهرست خاکستری استفاده می‌شود. همچنین امروزه ایمیل‌ها معمولاً علاوه بر پورت سنتی 25/TCP از طریق پورت 587/TCP دریافت می‌شوند تا انتقال پیام فقط برای کاربران تأییده شده قابل انجام باشد.

 

[1] Mail Transfer Agent

[2] Mail User Agent

[3] Sender Policy Framework

 

برای مطالعه راهنمای جامع درباره پروتکل SMTP، اینجا کلیک کنید.

 

منبع: ionos

نوشته های مرتبط
یک پاسخ بنویسید

نشانی ایمیل شما منتشر نخواهد شد.فیلد های مورد نیاز علامت گذاری شده اند *

دو + پانزده =