نماد سایت بلاگ ایران هاست

پروتکل IMAP چیست و چه تفاوتی با POP3 دارد؟

پروتکل IMAP چیست

 imap یکی از پروتکل های مورد استفاده در اینترنت است. از این پروتکل برای انتقال و ارتباطات ایمیل در وب بهره می گیرند. اگر با نرم افزار outlook کار کرده باشید احتمالا نام ئپروتکل imap را شنیده اید. در این مقاله ما به شما می گوییم imap چیست؟ چه ویژگی هایی دارد  و فرق IMAP با POP3 در چیست؟

imap چیست؟

پروتکل IMAP مخفف Internet Message Access Protocol می باشد که به معنی پروتکل دستیابی به پیغام در اینترنت است.

بطور مثال سرویس های صندوق پست الکترونیکی و یا وب سایت های جدید که امروزه فایلهای صوتی و تصویری در آن ها بصورت آنلاین Online مورد استفاده قرار می گیرند از این پروتکل بهره گرفته اند. پروتکل IMAP در لایه کاربردی و  بر روی پورت شماره ی  ۱۴۳ قرار دارد وبه سرویس گیرنده ها اجازه دسترسی به ایمیل بر روی سرویس دهنده از طریق کنترل از راه دور را فراهم می کند. سرویس های هاست ایمیل هم از پروتکل IMAP و POP3 و SMTP استفاده می کنند.

نسخه اصلی پروتکل IMAP چیست؟

نسخه اصلی imap به نام پروتکل دسترسی به میل به طور موقت بود که به عنوان سرویس گیرنده xerox lips machine و سرویس دهنده tops-۲۰ تکمیل شد. هیچ کپی از نسخه اول پروتکل دسترسی موقت وجود ندارد و تنظیمات پروتکل نسخه اصلی به imap2 برگردانده شده است. اگر چه بعضی از فرمان ها و جواب ها شبیه به imap2 است. اما پروتکل دسترسی موقت فاقد فرمان ها و پاسخ ها است اما با این حال با ترکیب این فرمان ها و علامت ها باعث ایجاد یک نسخه از imap شده است که سازگار با تمام نسخه های imap می باشد.

معایب پروتکل IMAP

یک سری نقاط ضعف در این پروتکل وجود دارد که باعث افزایش پیچیدگی می شود مثلا دسترسی همزمان چند سرویس گیرنده به یک mail box که این کار توسط سرویس دهنده جانبی مانند ( maildir ، database ) صورت می گیرد و باعث رفع و تصحیح ضعف می شود . اما در این حالت لازم است که الگوریتم جستجو و ذخیره یک میل بر روی سرویس دهنده با دقت کافی صورت گیرد که سرویس گیرنده نهائی می تواند تعداد زیادی از منابع را در زمان جستجوی mail box معرفی کند.

سرویس گیرنده imap برای دسترسی به محتوای پیام جدید می باید در خواستی را اعلام کنند که این کار باعث افزایش تاخیر در یک ارتباط کند مانند موبایل می شود، که برای رفع آن از طرحی به نام push imap را پیشنهاد شد که این طرح به طور کلی مورد تائید قرار نگرفت. بر خلاف بعضی از پروتکل های اختصاصی که عمل ارسال و بازیابی را به صورت ترکیبی انجام می دادند. ارسال یک پیام و ذخیره ی یک کپی از آن بر روی پوشه ای در سرویس دهنده های جانبی ( server – side ) باعث می شود که سرویس گیرنده برای انتقال محتوای پیام دو بار درخواست دهد اولی برای پروتکل smtp و دومی را برای imap جهت ذخیره و ارسال به پوشه میل.

 این مشکل با یک سری تنظیمات مورد تائید ietf lemonade در مورد قطعات موبایل ( urlauth ( rfc-۴۴۶۷ ) ،catenate ( rfc۴۴۶۹، در ( imap burl ( rfc۴۴۶۸ در smtp-submission رفع شده است. سرویس دهنده های pop۳ پوشه های سرویس دهندهای جانبی را حمایت نمی کنند بنابراین این سرویس گیرنده هاحق انتخاب ندارند اما می توانند موارد ارسال شده را بر روی سرویس گیرنده ذخیره کند. خیلی از سرویس گیرنده های imap می توانند پوشه های سرویس گیرنده جانبی را برای ذخیره میل های ارسال شده قالب بندی کنند. در آخر ( lemonade trio ) ماهواره مخابراتی سرویس گیرنده میل است که کپی فایل های ارسال شده را در یک پوشه و تحت نام out box ذخیره می کند .

ویژگی های پروتکل IMAP 

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

فرق IMAP با POP3

imap یا pop3؟ تفاوت POP3 و IMAP در نوع ارتباط با سرور است. در POP3، کلاینت ایمیل های جدید را بر روی کامپیوتر دانلود می کند و کاربر می تواند بدون ارتباط مستقیم با سرور، ایمیل ها را مطالعه کند؛ اما در پروتکل IMAP ارتباط با سرور به صورت مستقیم است و ایمیل ها، به صورت بی درنگ به کلاینت سرازیر می شوند.

همچنین اگر ایمیلی در کلاینت خوانده شود، در صورت برقراری ارتباط با استفاده از IMAP، ایمیل مربوطه در وب میل و سایر کلاینت هایی که به آن آدرس ایمیل دسترسی دارند، «خوانده شده» می شود. قابلیت همزمان سازی در IMAP برای کاربرانی که از چند کامپیوتر استفاده می کنند، بسیار کاربردی است و این قابلیت در POP3 وجود ندارد. البته برخی از ISPها به خوبی از IMAP پشتیبانی نمی کنند.

امیدواریم تفاوت imap و pop3 را درک کرده باشیذ اما برای کسب اطلاعات بیشتر در حوزه pop3 چیست به شما پیشنهاد می کنیم مقاله ما را مطالعه نمایید.

 کار با IMAP در کلاینتها 

علاوه بر وب میل که راهی برای دسترسی به صندوق پست الکترونیکی است، استفاده از پروتکل pop3 و imap نیز برای برقراری ارتباط با صندوق پست الکترونیکی و دریافت و ارسال ایمیل شایع است. برای استفاده از این دو پروتکل کلاینت هایی همچون Outlook و Thunderbird و… مورد استفاده قرار می گیرند.
کلاینتی را انتخاب کنید که در کنار امنیت و قابلیت های مفید، کار با آن راحت بوده و در دسترس باشد. در صورتی که می خواهید برای چک کردن ایمیل از کلاینت استفاده کنید، می توانید از نرم افزار outlook استفاده نمایید . همچنین برنامه ی تاندربرد نیز انتخاب مناسبی است..

برنامه ی Thunderbird

این نرم افزار محصولی از شرکت موزیلا است و با قابلیت های بالا و افزونه های امنیتی متعدد، امنیت ایمیل شما را همانند وب میل تضمین می کند. افزونه های EnigMail و GnuPG برای افزایش ضریب امنیتی و بالابردن امنیت حریم ایمیل شما است که به هنگام استفاده از تاندربرد توصیه می شوند.

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

بیشتر بخوانید: Mozilla Thunderbird چیست

قابلیت های کلیدی نرم افزار Mozilla Thunderbird v10.0

– پشتیبانی از ‌RSS و گروه‌های خبری و امکان ایجاد حساب برای این گروه‌ها
– سازگاری با بسته های امنیتی رایج موجود برای چک کردن فایل های مخرب
– وجود قابلیت Tab Browsing امکان استفاده همزمان از چندین ایمیل
– قابلیت شناسایی و مبارزه باJunkMail ها جهت جلوگیری از ورود هرزنامه‌ها و ایمیل‌های تبلیفاتی
– ساخت آسان اکانت ها در نرم افزار تنها با وارد کردن نام کاربری و کلمه‌ی عبور
– پشتیبانی از امکاناتی همچون امضای دیجیتال و رمزنگاری داده‌ها در ارسال و دریافت نامه‌ها
– حجم مناسب نسبت به قابلیت ها و نرم افزارهای مشابه
– آرشیو کامل از پیام ها و قابلیت دسته بندی ایمیلها
– امنیت بالا در پست های الکترونیکی
– سازگاری با اکثر پروتکل های رایج
– امکان ارسال فایل به آسانی
– سهولت در استفاده از نرم افزار
– دارای افزونه‌های بسیار مفید و کاربردی
– پشتیبانی از ایمیل‌های با فرمت HTML
– پشتیبانی کامل از زبان فارسی
– سازگار با نسخه های مختلف ویندوز از جمله ویندوز ۷

دستورات پروتکل IMAP 

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

در فرمان های مربوط به IMAP ، فرمت ها به شکل زیر تنظیم می شوند. (فرمان ها به حروف بزرگ و کوچک حساس نیستند)

آدرس میل سرور به شکل ، mail.yourdomainname فرض شده است.

اتصال  به هاست 

بعد از ورود به خط فرمان (CMD ) دستور زیر را تایپ نمایید :

telnet mail.yuordomainname  ۱۴۳

خروجی چیزی مانند شکل زیر است :

telnet mail.myserver.com 143

Trying 66.111.4.160…

Connected to mail.myserver.com (66.111.4.160).

Escape character is ‘^]’.

* OK IMAP4 ready

بعد از اتصال فرمان login را مانند شکل زیر تایپ نمایید .

login accountname@myserver.com *********
. OK User logged in

برای مشاهده ی میل باکس ها در سرور از فرمان List استفاده می شود، مانند شکل زیر :

list "" "*"
* LIST (HasChildren) "." "INBOX"
* LIST (HasNoChildren) "." "INBOX.Drafts"
* LIST (HasNoChildren) "." "INBOX.Sent Items"
* LIST (HasNoChildren) "." "INBOX.Trash"
* LIST (HasNoChildren) "." "INBOX.test1"
* LIST (HasNoChildren) "." "INBOX.test2"
. OK Completed (0.460 secs 7 calls)

روشی که Imap طبق آن عمل می کند، همه ی فلدرها را به صورت زیر فلدری از فلدر INBOX ایجاد می نماید.

فرمان status 

این فرمان اطلاعات پایه ای بر روی فلدر را نشان می دهد مثالا کل پیامها ، پیام های اخیر و پیام های مشاهده نشده را نشان می دهد :

. status INBOX (messages)
* STATUS INBOX (MESSAGES 2)
. OK Completed
. status INBOX (recent)
* STATUS INBOX (RECENT 0)
. OK Completed
. status INBOX (unseen)
* STATUS INBOX (UNSEEN 0)
. OK Completed

فرمانهای select ,examine 

عملکرد این دو فرمان مشابه می باشد و اطلاعات فلدر انتخاب شده را بر می گردانند و به ما اجازه ی دسترسی به ایمیلهای موجود در فلدر را می دهد. تفاوت اصلی در آن است که فرمان examine دارای مجور read و فرمان select دارای هر دو مجوز read,write می باشد.

examine INBOX.test2
* FLAGS (Answered Flagged Draft Deleted Seen)
* OK [PERMANENTFLAGS ()]
* ۰ EXISTS
* ۰ RECENT
* OK [UIDVALIDITY 1138801117]
* OK [UIDNEXT 1]
. OK [READ-ONLY] Completed
. select INBOX.test2
* FLAGS (Answered Flagged Draft Deleted Seen)
* OK [PERMANENTFLAGS (Answered Flagged Draft Deleted Seen *)]
* ۰ EXISTS
* ۰ RECENT
* OK [UIDVALIDITY 1138801117]
* OK [UIDNEXT 1]
. OK [READ-WRITE] Completed

خط exist نشان دهنده ی تعداد ایمیل های موجود در فلدر است RECENT تعداد ایمیل های اخیر را نشان داده و SELECT  پرچم مربوط به فرمان recent را حذف نمی کند.

ایجاد، حذف و تغییر نام فلدرها

فرمان CREATE به شکل زیر پیاده سازی می شود

create INBOX.test3
. OK Completed
. list "" "*"
* LIST (HasChildren) "." "INBOX"
* LIST (HasNoChildren) "." "INBOX.Drafts"
* LIST (HasNoChildren) "." "INBOX.Sent Items"
* LIST (HasNoChildren) "." "INBOX.Trash"
* LIST (HasNoChildren) "." "INBOX.test1"
* LIST (HasNoChildren) "." "INBOX.test2"
* LIST (HasNoChildren) "." "INBOX.test3" #we created this
. OK Completed (0.420 secs 8 calls)

نحوه ی اجرای فرمان DELETE

. delete INBOX.test3
. OK Completed
. list "" "*"
* LIST (HasChildren) "." "INBOX"
* LIST (HasNoChildren) "." "INBOX.Drafts"
* LIST (HasNoChildren) "." "INBOX.Sent Items"
* LIST (HasNoChildren) "." "INBOX.Trash"
* LIST (HasNoChildren) "." "INBOX.test1"
* LIST (HasNoChildren) "." "INBOX.test2"
. OK Completed (0.430 secs 7 calls)

فرمان RENAME به شکل زیر استفاده می شود

. rename INBOX.test1 INBOX.test3
* OK rename user.accountname.test1 user.accountname.test3
. OK Completed
. list "" "*"
* LIST (HasChildren) "." "INBOX"
* LIST (HasNoChildren) "." "INBOX.Drafts"
* LIST (HasNoChildren) "." "INBOX.Sent Items"
* LIST (HasNoChildren) "." "INBOX.Trash"
* LIST (HasNoChildren) "." "INBOX.linux" #this was test1
* LIST (HasNoChildren) "." "INBOX.test2"
. OK Completed (0.410 secs 7 calls)

فرمان FETCH اطلاعاتی در مورد ایمیل بازمی گرداند مثلا جهت مشاهده ی عنوان ایمیل ها این دستور را به فرمت زیر می نویسیم

. fetch 1 (body[header.fields (from to subject date)])
* ۱ FETCH (BODY[HEADER.FIELDS (from to subject date)] {195}
Date: Wed, 1 Feb 2006 13:37:19 UT
From: "Email Administrator" <bounce@myserver.com>
To: "Joe Bloggs" <accountname@myserver.co>
Subject: IMPORTANT: Click here to begin using your account
)
. OK Completed (0.000 sec)

جهت خواندن بدنه ی ایمیل دستور مربوطه را به شکل زیر می نویسیم

. fetch 2 rfc822.text
* ۲ FETCH (RFC822.TEXT {11658}
This is a multi-part message in MIME format.
--_----------=_۱۱۳۸۸۶۵۵۶۰۲۲۳۹۵۰
Content-Disposition: inline
Content-Length: 5194
Content-Transfer-Encoding: binary
Content-Type: text/plain
more text here.............
. OK Completed (0.000 sec)

فرمان Store

جهت اضافه یا حذف کردن فلاگ IMAP بر روی پیام ها استفاده می کنیم. فلاگها وضعیت ایمیل را مشخص کرده و پیام ها را به شکل replied to ,deleted ,seen را نشان می دهند.

فرمانهای Close ,Expunge

پیام ها در فلدر جاری را به طور دائمی حذف می کند. توسط فرمان EXPUNGE فقط پیام ها را حذف می کند، ولی فرمان CLOSE علاوه بر حذف پیام ها فلدر جاری را نیز غیر فعال می کند.

. expunge
* ۱ EXPUNGE
* ۱ EXPUNGE
* ۰ EXISTS
* ۰ RECENT
. OK Completed

فرمان Logout

جهت خروج از سرور از این فرمان استفاده می شود.

. logout
* BYE LOGOUT received
. OK Completed

خروج از نسخه موبایل