زیرساخت پست الکترونیک و پروتکل SMTP

اشتراک

زیرساخت پست الکترونیک و پروتکل SMTP

تفاوتی ندارد که از چه محصولی به عنوان Mail Server استفاده کنید. چه کاربر Kerio Connect باشید و چه از طرفداران Microsoft Exchange Server یا هر محصول دیگری ، شما به عنوان یک Mail Server Administrator بهتر است که بدانید E-Mail ها چگونه ارسال و دریافت می گردند.

چرا ایمیل ؟!
نامه الکترونیکی تقریبا از همان ابتدای تولد اینترنت وجود داشته است. شاید از محبوب ترین برنامه های دوران طفولیتِ اینترنت همین سرویس ایمیل باشد. به دلیل این قدمت ، در طول سال ها امکانات بسیاری به آن اضافه و قدرتمندتر و پیشرفته تر شده است.

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

ایمیل در مقایسه با دیگر سیستم های پیغام رسان قابلیت های قدرتمندی همچون امکان پشتیبانی از فرمت HTML دارد که ویژگی بسیار مفیدی است. در این مقاله قصد ما این است که پروتکل های لایه Application در سرویس ایمیل را بررسی نماییم. این پروتکل ها قلب سرویس ایمیل محسوب می شوند و آگاهی از چگونگی عملکرد آن ها برای Mail Server Administrator ها بسیار مهم است.

به تصویر زیر دقت نمایید.

.

.

در تصویر بالا سه جز اصلی وجود دارد. User Agents ، Mail Servers و Simple Mail Transfer Protocol. فرض کنید “ندا” یک ایمیل به شخصی به نام “میلاد” ارسال می کند. User Agent عنصری است که خواندن ، پاسخ ، فوروارد ، ذخیره و فرستادن یک ایمیل را برای ما فراهم می کند. برای مثال نرم افزار Microsoft Outlook از مجموعه آفیس یا Apple Mail جز User Agent ها هستند. زمانی که ندا ایمیل خود را ارسال می کند ، User Agent او پیغام را به Mail Server سمت خودش ارسال می کند تا در صف ایمیل های خروجی Mail Server قرار بگیرد. حال اگر میلاد بخواهد این ایمیل را بخواند ، User Agent او وظیفه دریافت ایمیل را از صندوق پستی او در Mail Server سمت خودش را به عهده دارد.

واضح است که  Mail Server ها هسته اصلی زیرساخت E-Mail هستند. هر کاربر مثل ندا و میلاد ، صاحب یک Mailbox در یکی از Mail Server ها است. بنابراین زمانی که ندا به میلاد ایمیل می فرستد ، User Agent آن را به Mailbox ندا در Mail Server انتقال می دهد و سپس به Mail Box میلاد در Mail Server دیگر فرستاده می شود. در اینجا مهم نیست که میلاد این ایمیل را بخواند یا خیر. و اگر تصمیم نداشته باشد که آن را بخواند Email در Mailbox باقی می ماند و حتی توسط User Agent دریافت نیز نمی گردد.

در اینجا اگر میلاد تصمیم بگیرد که ایمیل را مشاهده نماید ، در ابتدا باید توسط User Agent آن را دریافت نماید. Mail Server از طریق نام کاربری و کلمه عبور User Agent را اعتبار سنجی می نماید.

فرض کنید که Mail Server سمت ندا بنا به هر دلیلی نتواند ایمیل را با موفقیت به Mail Server مربوط به میلاد تحویل دهد. در این صورت Mail Server ندا ایمیل را در Message Queue یا صفِ پیغام ها نگه داری می کند و بسته به تنظیماتی که دارد هر 30 دقیقه یکبار یا بیشتر برای فرستادن مجدد تلاش خواهد کرد. اگر پس از چند روز موفق به ارسال ایمیل نشود ، آن را حذف خواهد کرد و به فرستنده ( ندا ) یک ایمیل مبنی بر عدم موفقیت ارسال برای او خواهد فرستاد.

SMTP
تا اینجا فهمیدیم که User Agent و Mail Server چه نقشی را بر عهده دارند. اما Simple Mail Transfer Protocol یا SMTP چیست ؟ SMTP یک پروتکل اصلی در لایه Application برای ایمیل است.

این پروتکل از سرویس انتفال دیتای قابل اعتمادِ TCP جهت انتقال پیام بین Mail Server ها  استفاده می نماید. SMTP مانند بیشتر پروتکل های لایه Application دارای دو وجه است. وجه اول Client Side است که در سمت Mail Server فرستنده اجرا می شود و صورت دوم آن Server Side می باشد که در سمت Mail Server دریافت کننده اجرا می گردد. هر دو وجه Client Side و Server Side این پروتکل بر روی تمام Mail Server ها قابل اجرا هستند. به بیان دیگر هر Mail Server زمانی که نقش فرستنده را بر عهده داشته باشد Client Side است و زمانی که نقش دریافت کننده Mail را بر عهده داشته باشد Server Side عمل می کند.

در مقاله های آینده از این سری SMTP را عمیق تر بررسی خواهیم کرد. همچنین درباره Mail Access Protocols مثل POP3 و IMAP ، مقایسه HTTP و SMTP ( چرا که هر دو این پروتکل ها وظیفه انتقال فایل بین دو هاست را بر عهده دارند ) صحبت خواهیم نمود.

ارسال دیدگاه

Your email address will not be published. Required fields are marked *

2 × 4 =

*