آشنایی با نحوه کار کردن ایمیل

کاربران اینترنت روزانه میلیاردها ایمیل را رد و بدل می کنند. خود شما ممکن است بدون اینکه متوجه باشید در یک روز دهها ایمیل را ارسال کنید. به جرأت می توان گفت که ایمیل یکی از محبوبترین وسایل ارتباطی باشد.

آیا تا به حال به این فکر کرده اید که چگونه یک ایمیل مسیر کامپیوتر شما تا کامپیوتر مقصد در آن سوی دنیا را می پیماید؟ اینکه POP3 چیست و چگونه ایمیل های شما را ذخیره می کند؟ پاسخ این سوالات شما را شگفت زده خواهد کرد چرا که خواهید دانست که پایه ایمیل چه سیستم ساده ای دارد.

 

یک پیام ایمیل

 به نقل از مجله Darwin-Prime Movers، اولین پیام ایمیل توسط یک مهندس به نام Ray Tomlinson در سال 1971 فرستاده شد. پیش از این امکان ارسال ایمیل به کاربران یک کامپیوتر مستقل وجود نداشت. Tomlinson توانست یک پیام ایمیل را از طریق اینترنت با استفاده از علامت “@” جهت مشخص نمودن کامپیوتر گیرنده ارسال کند.

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

 

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

برای دیدن ایمیل های دریافت شده، شما از نوعی سرویس گیرنده ایمیل، بهره می برید. بسیاری از کاربران از سرویس گیرندگان مستقل و شناخته شده ای همچون MS Outlook ،Outlook Express،  Eudoraیا Pegasus استفاده می کنند. کاربرانی که مشترکین سرویس های رایگان ایمیل همچون Hotmail و Yahoo هستند از یک سرویس گیرنده ایمیل بر روی وب استفاده می کنند. اگر شما از مشترکین AOL باشید از AOL Email Reader استفاده می کنید. فارع از اینکه کدام سرویس گیرنده را استفاده می کنید، سرویس گیرنده شما چهار عمل را انجام می دهد:

* لیستی از پیام ها را با نمایش Header آنها به شما نشان می دهد. Header ارسال کننده، موضوع همچنین ساعت و تاریخ دریافت پیام و حجم پیام را نشان می دهد.

* به شما امکان انتخاب پیام و نمایش آن را می دهد.

* به شما امکان ایجاد و ارسال پیام را می دهد. شما گیرنده پیام و موضوع را مشخص کرده سپس متن پیام را تایپ می کنید.

* به شما امکان اضافه کردن پیوست به پیام های ارسالی و ذخیره پیوست پیام های دریافتی را می دهد.

گرچه یک سرویس دهنده ممکن است امکانات دیگری هم در اختیار ما بگذارد ولی این چهار قابلیت اصلی ترین کارهایی است که یک سرویس گیرنده انجام می دهد.

 

یک سرویس دهنده ساده ایمیل

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

اگر در مورد سرویس دهندگان وب خوانده باشید، می دانید که  ماشین ها در اینترنت از Applicationهایی استفاده می کنند تا نقش خود را به عنوان سرویس دهنده ایفا کنند. در حال حاضر میلیونها ماشین در اینترنت به عنوان سرویس دهنده وب، سرویس دهنده FTP، سرویس دهنده Telnet و سرویس دهنده ایمیل در حال فعالیت هستند. Applicationها تمام مدت بر روی ماشینهای سرویس دهنده در حال اجرا هستند و به پورت های تعیین شده گوش می کنند و منتظر ارتباط کاربران یا برنامه هایی هستند که از طریق این پورت ها به آنها متصل شوند. در ساده ترین حالت ممکن، یک سرویس دهنده ایمیل به این صورت کار می کند:

1- لیستی از حساب های کاربری دارد، یک حساب به ازای یک کاربر، تا توانایی دریافت ایمیل های روی سرویس دهنده را داشته باشد. مثلا حسابی تحت عنوان Jsmith برای کاربری به نام John Smith و Mbrain برای کاربری به نام Marshall Brain.

2- یک فایل متنی برای هر حساب در لیست دارد. مثلا Jsmith.txt را برای کاربر john Smith و Mbrain.txt را برای Marshall Brain.

3-  اگر شخصی بخواهد پیامی ارسال کند می بایست متن پیام را (مثلا: Marshall میشه روز دوشنبه ناهار رو با هم باشیم؟) در یک سرویس گیرنده وارد کند و مشخص کند که پیام می بایست به دست چه کسی برسد(John) وقتی که دکمه ارسال را فشار می دهد، سرویس گیرنده با سرویس دهنده ایمیل ارتباط برقرار می کند و نام گیرنده (Mbrain)، نام فرستنده(Jsmith) و متن پیام را به سرویس دهنده ارائه می دهد.

از: Jsmith به: Mbrain Marshall میشه روز دوشنبه ناهار رو با هم باشیم؟

ممکن است سرویس دهنده چندین بخش دیگر نیز در فایل ذخیره کند مثل تاریخ و زمان دریافت و موضوع اما در نهایت این پروسه ای بسیار ساده خواهد بود.

 

سرویس دهندگان پیچیده تر

همچنان که افراد دیگر به Mbrain ایمیل ارسال می کنند، سرویس دهنده پیام آنها را به ترتیب دریافت به انتهای فایل متصل می کند. فایل متنی یک سری پنج یا ده تایی از پیام ها را جمع آوری کرده و در نهایت با وارد شدن به حساب کاربری می توان آنها را خواند. زمانی که بخواهیم به ایمیلهایمان نگاهی ببندازیم، سرویس گیرنده می بایست به ماشین سرویس دهنده متصل شود. در ساده ترین سیستم، سرویس گیرنده می بایست:

1- از سرویس دهنده تقاضای یک کپی از فایل Mbrain.txt را می کند.

2- از سرویس دهنده می خواهد تا فایل Mbrain.txt را پاک کند.

3- فایل Mbrain.txt را روی ماشین خودمان ذخیره می کند.

4- فابل را به پیامهای جدا گانه تقسیم می کند.(از لغت “From:” به عنوان شاخص پایان یک پیام و آغاز پیام دیگر استفاده می کند.)

5- Header تمامی پیام ها را در یک لیست نمایش می دهد.

وقتی که ما روی Header یک پیام دوبارکلیک می کنیم، سرویس دهنده پیام را در فایل متنی پیدا کرده و محتوای متن  آن را به ما نشان می دهد.

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

سیستم واقعی ایمیل

در حال حاضر، برای اکثریت غالب افراد، سیستم واقعی ایمیل از دو سرویس دهنده متفاوت و در حال اجرا بر روی یک ماشین سرویس دهنده تشکیل شده است. یک سرویس دهنده تحت عنوان (SMTP(Simple Mail Transfer Protocol  که به ایمیل های ارسالی رسیدگی می کند و دیگری سرویس دهنده POP3(Post Office Protocol) یا IMAP(Internet Mail Access Prortocol) که هر دو به ایمیل های دریافتی رسیدگی می کنند. یک سرویس دهنده معمول به این تصویر شبیه است. سرویس دهنده SMTP به پورت شناخته شده 25، POP3 به پورت 110 و IMAP به پورت 143 گوش می کند.

 

سرویس دهنده SMTP

هرگاه که شما ایمیلی ارسال می کنید، سرویس گیرنده ایمیل شما با سرویس دهنده SMTP ارتباط برقرار کرده تا ایمیل را ارسال کند. سرویس دهنده SMTP شما ممکن است برای تحویل ایمیل با دیگر سرویس دهنده های SMTP ارتباط برقرار کند.

فرض کنیم که می خواهیم ایمیلی را ارسال کنیم. ID ایمیل ما Brain است و ما حساب خودمان را روی Howstuffworks.com داریم. ما می خواهیم ایمیلی را به jsmith@mindspring.com ارسال کنیم. زمانی که ما پیامی را ایجاد می کنیم و دکمه ارسال را فشار می دهیم، این مراحل طی می شوند:

 

1- Outlook Express با استفاده از پورت 25 به سرویس دهنده SMTP در mail.howstuffworks.com متصل می شود.

2- Outlook Express با سرویس دهنده SMTP مکالمه می کند و نشانی فرستنده، نشانی گیرنده همچنین متن پیام را به سرویس دهنده SMTP می گوید.

3- سرویس دهنده SMTP نشانی “to” (jsmith@mindspring.com) را در نظر گرفته و آن را به دو بخش تقسیم می کند: نام گیرنده(jsmith) و نام دامنه(mindspring.com). اگر نشانی “to”، کاربر دیگری در howstuffworks.com باشد، سرویس دهنده SMTP به سادگی پیام را به سرویس دهنده POP3 در howstuffworks.com تحویل می دهد(از برنامه کوچکی به نام Delivery Agent استفاده می کند.). اگر گیرنده در دامنه دیگری باشد، SMTP می بایست با آن دامنه ارتباط برقرار کند.

4- سرویس دهنده SMTP با یک سرویس دهنده نام دامنه یا DNS مکالمه می کند و می گوید: “می تونی نشونی های  IP سرویس دهنده SMTP دامنه howstuffworks.com  رو به من بدی؟” در پاسخ DNS نشانی یا نشانی های IP سرویس دهنده SMTP که Mindspring از آنها استفاده می کند را می گوید.

5- سرویس دهنده SMTP در howstuffworks.com با استفاده از پورت 25 با سرویس دهنده SMTP در Mindspring ارتباط برقرار می کند و همان مکالمه متنی ساده ای که سرویس گیرنده ماشین ما(Outlook Express) با او داشت را می کند و پیام را به سرویس دهنده SMTP در Mindspring تحویل می دهد. سرویس دهنده Mindspring تشخیص می دهد که دامنه jsmith، Mindspring است بنابراین پیام را به سرویس دهنده POP3 در Mindspring تحویل می دهد تا آن را در صندوق پستی jsmith قرار دهد.

اگر به دلایلی سرویس دهنده SMTP در Howstuffworks نتواند با سرویس دهنده SMTP در Mindspring ارتباط برقرار کند، پیام در یک صف قرار می گیرد. سرویس دهنده SMTP در اکثر ماشین ها از برنامه ای به نام Sendmail برای ارسال استفاده می کنند و این صف را صف Sendmail می نامند. Sendmail به صورت دوره ای تلاش می کند تا دوباره پیام های در صف را ارسال کند، برای مثال هر 15 دقیقه. بعد از 4 ساعت ایمیلی را به شما فرستاده و وجود مشکل را گزارش می کند. در اکثر تنظیمات، پس از 5 روز، Sendmail تسلیم شده و ایمیل را بدون اینکه تحویل دهد، به خودمان بازمی گرداند.

سرویس دهنده SMTP فرمان های بسیار ساده ای را همچون HELO، MAIL، RCPT و DATA تفسیر و درک می کند. پراستفاده ترین این فرمان ها از این قرارند:

“HELO” : خودت را معرفی کن.

“EHLO” : خودت را معرفی کن و حالت گسترده را انتخاب کن.

“MAIL FROM” : فرستنده را مشخص کن.

“RCPT TO” : گیرنده را مشخص کن.

“DATA” : محتوای پیام را مشخص کن(“To”،”From”،”Subject” می بایست سه خط اول پیام باشند.)

“RESET” : بازنشانی شو.

“QUIT” : از جلسه(Session) خارج شو.

“HELP” : در مورد فرمان ها  کمک بده.

“VRFY”: از صحت یک نشانی مطمئن شو.

“EXPN”: یک نشانی را گسترده کن.

“VERB”: بیشتر توضیح بده.

 

سرویس دهنده های POP3 و IMAP

در ساده ترین حالت پیاده سازی POP3، سرویس دهنده مجموعه ای از فایل های متنی را نگهداری می کند، هریک به ازای یک حساب ایمیل. وقتی یک پیام می رسد، سرویس دهنده POP3 تنها پیام را به انتهای فایل گیرنده پیوست می کند.

وقتی که شما ایمیلتان را چک می کنید، سرویس گیرنده شما با استفاده از پورت 110با سرویس دهنده POP3 ارتباط برقرار می کند. سرویس دهنده POP3 به یک نام کاربری و یک کلمه عبور نیاز دارد. زمانی که شما Login کنید، POP3 فایل متنی شما را باز می کند و به شما اجازه دسترسی به آن را می دهد. همچون سرویس دهنده SMTP، سرویس دهنده POP3 نیز مجموعه ای از دستوران بسیار ساده را درک و تفسیر می کند:

“USER” : نام کاربری را وارد کنید.

“PASS” :  کلمه عبور را وارد کنید.

“QUIT” : سرویس دهنده POP3 را ترک کن.

“LIST” : فهرست پیام ها و حجم آنها را نشان بده.

“RETR” : پیام را بازیابی کن، یک شماره پیام به آن بده.

“DELE” : پیام را حذف کن، یک شماره پیام به آن بده.

“TOP” : خطوط “x” بالای یک پیام را نمایش بده، به آن یک شماره پیام و تعداد خطوط را بده.

سرویس گیرنده شما به سرویس دهنده POP3 منصل و برای انتقال یک کپی از  پیام های ایمیل شما بر روی کامپیوترتان یک سری دستورات را رد و بدل می کند. عموما سرویس گیرنده پس از کپی پیام ها آنها را از روی سرویس دهنده حذف می کند.(مگر اینکه شما سرویس دهنده را طوری تنظیم کرده باشید که این کار را نکند.)

همانطور که مشاهده می کنید، سرویس دهنده POP3 به صورت خیلی ساده تنها به عنوان یک واسطه بین سرویس گیرنده ایمیل و فایلهای متنی که حاوی پیامهای شما می باشند، عمل می کند. می بینید که عملکرد یک سرویس دهنده POP3 در نهایت سادگی است. شما می توانید با استفاده از Telnet و پورت 110 به سرویس دهنده POP3 متصل شوید و خودتان اقدام به ارسال دستورات کنید.

 

سرویس دهنده IMAP

همینطور که می بینید پروتکل POP3 بسیار ساده است. این پروتکل به شما امکان می دهد تا مجموعه ای از پیام های مرتب شده را به صورت یک فایل متنی بر روی سرویس دهنده ذخیره کنید. سرویس گیرنده شما(مثلا Outlook Express) به سرویس دهنده POP3 متصل می شود و پیام ها را از فایلهای متنی POP3 بر روی کامپیوتر شما کپی می کند. این تمام سرویسی است که POP3 به ما ارائه می دهد.

بسیاری از کاربران چیزی بیشتر از این از ایمیل هایشان می خواهند آنها توقع دارند تا ایمیل هایشان بر روی سرور باقی بماند. دست یابی به ایمیل ها از کامپیوترهای مختلف، اصلی ترین دلیل نگهداری ایمیل ها بر روی سرویس دهنده است. با استفاده از POP3 ، ایمیل های شما در همان کامپیوتری که آنها را ذخیره کرده اید باقی می ماند و مثلا امکان اینکه هم از طریق Desktop و هم Laptopتان به ایمیل ها دسترسی داشته باشید را نخواهید داشت.

IMAP(Internet Mail Access Protocol) پروتکل پیچیده تری است که این مشکل را حل کرده است. با استفاده از IMAP ایمیل های شما بر روی سرویس دهنده باقی می ماند. شما می توانید بر روی سرویس دهنده پوشه هایی داشته باشید و ایمیل هایتان را در آنها سازماندهی کنید. وقتی که  ایمیلی را جستجو می کنیم، به جای اینکه جستجو در کامپیوترتان انجام شود در سرویس دهنده انجام می شود. این روش، دستیابی به ایمیل ها را از هر ماشینی امکان پذیر می سازد و فارغ از اینکه از چه ماشینی استفاده می کنید، دسترسی به پیام های تمام پوشه هایتان دارید.

 

 مشکلات IMAP و پیوست ها

سرویس گیرنده شما از پورت 143 جهت اتصال به سرویس دهنده IMAP استفاده می کند سپس سرویس گیرنده شما مجموعه ای از دستورات را صادر می کند،این دستورات امکان کارهایی همچون: لیست کردن تمام پوشه های روی سرویس دهنده، لیست کردن Header تمام پیام های درون یک پوشه، دست یابی به یک ایمیل مشخص روی سرویس دهنده، حذف تمامی پیام های روی سرویس دهنده یا جستجو در میان تمام آنها را، به ما می دهد.

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

 

پیوست ها

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

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

با در نظر گرفتن تأثیر فوق العاده ایمیل در زندگی ما، ایمیل برای همیشه روش های ارتباطی ما را تغییر داده است، سیستم ایمیل یکی از ساده ترین ابداع ها بوده است. گرچه بخش هایی از این سیستم همچون قوانین Routing در Sendmail پیچیده تر شده اما سیستم پایه ایمیل به صورت باورنکردنی ساده است.
دفعه بعد که ایمیلی را ارسال می کنید، شما دقیقا می دانید که چگونه ایمیل شما به مقصد می رسد.