پروتکل ساده ایمیل‌رسانی

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

مراحل ارسال یک نامه الکترونیکی|چپ|انگشتی|300px

 مدل پردازش رایانامه 
رایانامه توسط کارخواه نامه (MUA) به کارساز نامه(MSA) توسط SMTP روی پورت ۵۸۷، TCP فرستاده می‌شود. بیشتر سرویس دهنده‌های رایانامه همچنان روی پورت ۲۵ نامه‌ها را می‌پذیرند. MSA نامه را به مأمور انتقال نامه (MTA) تحویل می‌دهد. معمولاً این دو نمونه‌هایی از یک نرم‌افزار هستند که با آپشن‌های متفاوت روی یک ماشین اجرا می‌شوند. پردازش محلی می‌تواند روی یک ماشین اجرا شود یا بین چندین ماشین تقسیم شود. پردازش‌های مأمور نامه روی یک ماشین می‌تواند فایل‌ها را به اشتراک بگذارد ولی اگر پردازش روی چندین ماشین باشد آن‌ها پیام‌هایی را توسط SMTP به یکدیگر انتقال می‌دهند که هر ماشین به گونه ای تنظیم شده که از ماشین بعدی به عنوان کارساز رایانامه استفاده کند.

MTA از DNS استفاده می‌کند تا رکورد MX (بخشی از رایانامه که بعد @ می‌آید) را پیدا کند. رکورد MX شامل نام MTA مقصد می‌باشد. بر اساس میزبان مقصد و فاکتورهای دیگر، MTA یک کارساز دریافت کننده را انتخاب و برای کامل کردن تبادل نامه به آن متصل می‌شود.


انتقال نامه می‌تواند در یک ارتباط یگانه بین دو MTA انجام شود یا به صورت دنباله ای از مراحل توسط سیستم‌های میانی. کارساز SMTP دریافت کننده ممکن است مقصد نهایی باشد یا به صورت یک رله میانی عمل کند (که نامه را ذخیره و آن را ارسال می‌کند) یا به صورت دروازه(gateway)، که نامه را توسط شیوه‌نامه‌ای غیر از SMTP ارسال می‌کند، باشد. در هر مرحله کارساز یا باید نامه را تحویل دهد یا خطایی گزارش کند.

در آخرین مرحله که نامه دریافت می‌شود به منظور تحویل محلی به مأمور تحویل نامه(MDA) داده می‌شود. سپس MDA نامه در فرمت مناسب برای نامه دان(mailbox) ذخیره می‌کند. دریافت نامه می‌تواند توسط یک یا چند کامپیوتر انجام شود که در شکل MDA به صورت یک جعبه نمایش داده شده‌است. MDA می‌تواند نامه را مستقیم ذخیره کند یا توسط شیوه‌نامه‌های SMTP و LMTP آن را در شبکه ارسال کند.

وقتی نامه به کارساز محلی نامه رسید، به منظور دریافت توسط کارخواه‌های نامه(MUAs) ذخیره می‌شود. نامه توسط اپلیکیشن هایend-user(کارخواه‌های رایانامه) تحت شیوه‌نامه‌های IMAP و POP دریافت می‌شود.
SMTP انتقال نامه را تعریف می‌کند و نه محتوای نامه؛ بنابراین پارامترهایی مانند ارسال کننده نامه در SMTP مشخص می‌شوند اما بدنه و عنوان مشخص نمی‌شوند.

 بررسی شیوه‌نامه 
SMTP یک ارتباط اتصال گرا و مبتنی بر متن است که در آن فرستنده نامه با دریافت کننده نامه تحت سازوکاری، معمولاً TCP، ارتباط برقرار می‌کند. یک نشست SMTP از دستورهای تشکیل می‌شود که توسط کارخواه آغاز و توسط کارساز پاسخ داده می‌شود و در آن پارامترهای نشست مبادله می‌شوند. هر نشست ممکن است شامل صفر یا تعداد بیشتری تراکنش باشد. هر تراکنش از سه مجموعه فرمان/پاسخ تشکیل شده‌است:
 فرمان MAIL، برای تنظیم آدرس بازگشت
 فرمان RCPT، برای تنظیم دریافت کننده پیام.
 فرمان DATA، برای فرستادن سیگنال آغاز محتوای پیام. محتوای پیام شامل عنوان و بدنه می‌باشد که با یک خط خالی جدا شده‌اند. DATA در واقع گروهی از فرمان‌ها است که کارساز به آن دو بار پاسخ می‌دهد: یک بار به خود فرمان DATA برای تأیید آمادگی برای دریافت و بار دوم در انتهای دنباله داده به منظور رد/قبول کل پیام.
علاوه بر پاسخ میانی به فرمان DATA، پاسخ هر کارساز می‌تواند مثبت یا منفی باشد. پاسخ‌های منفی می‌توانند گذرا یا دائم باشند. reject یک پاسخ منفی دائم است وdrop یک پاسخ مثبت است.

کارخواه SMTP می‌تواند کارخواه رایانامهٔ کاربر انتهایی(end-user) یا مأمور انتقال نامه(MTA) در کارساز relay باشد.
کارسازهای SMTP پیام‌هایی با پاسخ منفی گذرا را در صف‌هایی برای تلاش مجدد نگهداری می‌کنند.

SMTP شیوه‌نامه‌ای برای تحویل نامه است. در استفاده معمول، نامه از کارسازی به کارساز دیگر تا رسیدن به کارساز مقصد منتقل می‌شود و مسیریابی با استفاده از کارساز مقصد شکل می‌گیرد. شیوه‌نامه‌های دیگر مانند POP و IMAP به‌طور ویژه برای مدیریت صندوق‌های نامه شخصی طراحی شده‌اند.

 کارساز SMTP مبدأ 
هنگامی که کارخواه رایانامه یک پیام را ارسال می‌کند، آن را به کارساز SMTP پیکربندی شده منتقل می‌کند و با استفاده از شیوه‌نامهٔ SMTP با مقصد ارتباط برقرار می‌کند. بدین ترتیب که کارساز SMTP مبدأ رایانامه را به کارساز SMTP مقصد انتقال می‌دهد. این کارخواه باید آدرس IP کارساز SMTP مبدأ را در تنظیماتش بداند. سپس کارساز مبدأ از طرف کاربر این رایانامه را ارسال می‌کند.

ادمین کارساز باید کارخواه‌های کارساز را کنترل کند. این کنترل به جلوگیری از spam کمک می‌کند. دو راهکار وجود دارد:
 روش قدیمی تر از محدودیت گذاشتن روی مکان کارخواه استفاده می‌کرد و تنها کارخواه‌هایی که آدرس IP آن‌ها در کنترل ادمین بود مجاز به استفاده بودند.
 کارسازهای SMTP جدید از روش احراز هویت استفاده می‌کنند و قبل از دسترسی اعتبار کاربر باید تأیید شود.
اعمال محدودیت دسترسی مرتبط با مکان:

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

این سیستم انواع مختلفی دارد. برای مثال ممکن است کارساز SMTP شرکتی تنها به کاربران که روی همان شبکه هستند کارسازیس بدهد و دسترسی بقیه کاربران را با firewall بلاک کند. یا ممکن است کارساز محدوده آدرس‌های IP کارخواه‌ها را چک کند.

این روش‌ها معمولاً توسط دانشگاه‌ها و مراکز مشابه برای ارتباط درون سازمانی استفاده می‌شد. اما امروزه بیشتر از روش احراز هویت استفاده می‌شود.

احراز هویت کارخواه:

این روش برای کاربران موبایل بسیار مناسب است و به آن‌ها این امکان را می‌دهد تنظیمات واحدی را برای ارتباط با کارساز استفاده کنند.

Open relay:

میل کارسازی است که به شخص ثالث بدون احراز هویت اجازهٔ ارسال رایانامه می‌دهد، بدین معنا که برای یک کاربر که از لوکال دامین کارساز نیست امکان ارسال یا دریافت رایانامه را فراهم می‌نماید. یک کارساز Open relay اجازه می‌دهد که کاربران تلفن همراه ابتدا از طریق یک ISP محلی برای اتصال به شبکه‌های شرکتی استفاده کنند، سپس پیام را به ISP اصلی خود و در نهایت به مقصد نهایی منتقل می‌کند. با این حال خطر اصلی و نکته منفی Open relay، گسترش استفاده از آن توسط اسپمرها است که به دنبال مبهم سازی یا حتی پنهان کردن منبع حجم زیاد رایانامه‌های اسپمی هستند که ارسال می‌کنند.

پورت‌ها:

ارتباط بین کارسازهای نامه به‌طور کلی از پورت ۲۵ شیوه‌نامهٔ TCP، که به SMTP اختصاص داده شده‌است، استفاده می‌کند. کارخواه‌ها معمولاً به جای پورت ۲۵ از پورت‌های ۵۸۷ و ۴۶۵ استفاده می‌کنند. پورت ۲۵۲۵ توسط افرادی استفاده می‌شود ولی هیچگاه به صورت رسمی پشتیبانی نشده‌است.

 مثالی از SMTP 
در زیر یک مثال از ارسال نامه از طریق SMTP بین دو صندوق نامه، که در یک دامنه(example.com) هستند، آمده‌است. در این مثال S و C به ترتیب کارساز و کارخواه هستند و جزو پیام نیستند. پس از آنکه کارخواه (ارسال کننده نامه) یک اتصال مطمئن با کارساز (دریافت کننده نامه) برقرار کرد، یک نشست با پیامی از سمت کارساز آغاز می‌شود. این پیام معمولاً شامل نام دامنه (در اینجا smtp.example.com) می‌باشد. کارخواه مکالمه خود را با فرمان HELO آغاز می‌کند.


کارخواه، آدرس رایانامهٔ فرستنده نامه را با فرمان MAIL FROM به دریافت کننده اطلاع می‌دهد. در این مثال نامه دو دریافت کننده دارد که در یک کارساز SMTP هستند. برای این که این دو دربخش TO و CC لیست شوند فرمان RCPT TO استفاده شده‌است. هر دریافت موفق توسط کارساز با کد و پیامی مشخص تأیید می‌شود. (مثال: 250 OK)

انتقال بدنه نامه با فرمان DATA آغاز می‌شود و سپس خط به خط فرستاده می‌شود تا اینکه نامه تمام شود. نشانه اتمام نامه یک خط جدید به دنبال یک نقطه و یک خط جدید دیگر است. (<CR><LF>.<CR><LF>)

ممکن است متن نامه حاوی خطی باشد که با نقطه آغاز می‌شود. در اینصورت کارخواه دو تا نقطه می‌فرستد و کارساز آن را با یک خط جدید و یک نقطه جایگزین می‌کند. به این روش dot-stuffing می‌گویند.

پاسخ مثبت کارساز به پایان‌نامه به معنی این است که کارساز مسئولیت تحویل نامه را پذیرفته‌است. ممکن است به دلایلی مانند قطعی برق ارتباط قطع شود و دو نسخه از نامه نگهداری شود. تا زمانی که فرستنده کد تأیید ۲۵۰ را دریافت نکرده فرض می‌کند نامه تحویل داده نشده‌است. از طرفی، دریافت کننده نامه را پذیرفته‌است و فرض می‌کند نامه به آن تحویل داده شده‌است. احتمال اینکه در این زمان خطایی رخ دهد با میزان فیلتری که کارساز با هدف anti-spamming انجام می‌دهد متناسب است. زمان timeout ده دقیقه در نظر گرفته می‌شود.

فرمان QUIT نشست را به اتمام می‌رساند. اگر رایانامه چندین دریافت کننده داشته باشد کارخواه فرمان QUIT را اجرا می‌کند و برای ارسال به مقصدی دیگر، به کارسازی دیگر متصل می‌شود. بعضی کارخواه‌ها به صورت خودکار پس از دریافت پیام
250 OK: queued as ۱۲۳۴۵ به اتصال خاتمه می‌دهند؛ بنابراین دو خط آخر در مثال فوق ممکن است رخ ندهند. این موضوع کارساز را هنگام تلاش برای پاسخ با کد ۲۲۱، با مشکل مواجه می‌کند.

 پانویس 

رده:پروتکل‌های اینترنت
رده:پروتکل‌های پست الکترونیک اینترنت
رده:پروتکل‌های لایه کاربرد
رده:پست الکترونیک