رفتن به محتوا
زیرساخت فناوری اطلاعات

JMAP، نه IMAP: چرا وبمیل فن‌میل حس وبمیل بودن نمی‌دهد

IMAP از ۱۹۸۶ است و برای کلاینت دسکتاپ با اتصال طولانی ساخته شده. JMAP (RFC 8620/8621) برای کلاینت‌های وب و موبایل نوشته شده است. مقایسهٔ این دو در کنار هم و اینکه چرا وبمیل فن‌میل JMAP است.

H
Hamze Zare Nasiri
۷ شهریور ۱۴۰۵
JMAP، نه IMAP: چرا وبمیل فن‌میل حس وبمیل بودن نمی‌دهد

بیشتر وبمیل‌ها هنوز با پروتکل IMAP با سرور ایمیل حرف می‌زنند. IMAP در سال ۱۹۸۶ طراحی شد و نسخهٔ فعلی آن، IMAP4rev2 (RFC 9051، اوت ۲۰۲۱)، هنوز یک پروتکل متنی و حالت‌دار است که برای کلاینت دسکتاپی ساخته شده که یک اتصال طولانی را باز نگه می‌دارد. تب مرورگر نوع دیگری از کلاینت است: باز و بسته می‌شود، در مسیر اینترنتش قطع می‌شود و هم‌زمان صد کار می‌خواهد. JMAP (JSON Meta Application Protocol) برای همین کلاینت نوشته شده است. فن‌میل روی Stalwart Mail Server متن‌باز اجرا می‌شود که هر دو پروتکل را پشتیبانی می‌کند و وبمیل ما از JMAP استفاده می‌کند.

JMAP چیست؟

JMAP یک استاندارد IETF برای همگام‌سازی ایمیل با سرور از طریق JSON روی HTTPS است. پروتکل پایه RFC 8620 (ژوئیهٔ ۲۰۱۹) و مدل دادهٔ ایمیل RFC 8621 (اوت ۲۰۱۹) است که هر دو را نیل جنکینز از Fastmail و کریس نیومن از Oracle نوشته‌اند. سند بعدی، RFC 8887 (اوت ۲۰۲۰)، انتقال از طریق WebSocket را اضافه می‌کند. RFC 8621 طوری طراحی شده که یک سرور بتواند یک صندوق را هم‌زمان با IMAP و JMAP ارائه دهد.

مقایسهٔ IMAP و JMAP

IMAP (RFC 9051)JMAP (RFC 8620/8621)
قالبفرمان‌های متنی خط‌به‌خط روی اتصال TCP پایدارJSON روی HTTPS، با WebSocket اختیاری (RFC 8887)
چند کار هم‌زمانفرمان‌ها پشت سر هم ارسال می‌شوند، اما هر پوشه وضعیت انتخاب‌شدهٔ خودش را لازم داردچند فراخوانی در یک درخواست، و فراخوانی‌های بعدی می‌توانند از نتیجهٔ قبلی‌ها استفاده کنند
ایمیل جدیدIDLE در هر اتصال فقط یک پوشهٔ انتخاب‌شده را می‌پایدPush برای همهٔ تغییرهای حساب و بعد دریافت فقط چیزهایی که تغییر کرده
اتصال دوباره پس از قطعی شبکهکلاینت پوشه‌ها را دوباره انتخاب و وضعیت را مقایسه می‌کندکلاینت آخرین رشتهٔ وضعیتش را می‌فرستد و تغییرهای پس از آن را می‌گیرد
ارسالپروتکل جدا (SMTP submission)ارسال بخشی از همان API است
کلاینت مناسباپ‌های ایمیل دسکتاپ و گوشیاپ‌های وب و موبایل که مدام باز و بسته می‌شوند

این برای کسی که ایمیل می‌خواند چه تغییری می‌دهد

  • کارهای دسته‌ای یک درخواست است. جابه‌جا یا علامت‌گذاری صد پیام یک فراخوانی با فهرست شناسه‌هاست، نه یک حلقه از فرمان‌ها.
  • باز کردن صندوق یک رفت‌وبرگشت است. کلاینت می‌تواند فهرست پیام‌ها و سرآیند همان پیام‌ها را در یک درخواست بخواهد، چون فراخوانی دوم به نتیجهٔ اولی ارجاع می‌دهد.
  • قطع شدن اتصال هزینهٔ کمی دارد. بعد از قطعی اینترنت یا بستن درِ لپ‌تاپ، کلاینت فقط تغییرهای پس از آخرین وضعیتش را می‌خواهد و پوشه‌ها را دوباره نمی‌گردد.
  • پیش‌نویس، رشتهٔ گفت‌وگو و ارسال در یک مدل‌اند. نویسندهٔ پیام لازم نیست پرچم‌های IMAP و یک نشست SMTP جدا را به هم بدوزد.

چرا این موضوع در میزبانی روی سرور خودتان مهم‌تر است

یک ارائه‌دهندهٔ بزرگ می‌تواند پروتکل پرحرف را پشت لایه‌های کش و سخت‌افزار زیاد پنهان کند. سرور روی زیرساخت خودتان روی ماشین‌هایی اجرا می‌شود که هزینه‌اش را می‌دهید، پس پروتکل مستقیم در حس کار با صندوق و بار سرور در چند هزار کاربر دیده می‌شود. رفت‌وبرگشت کمتر یعنی درخواست کمتر برای همان کار. اگر در حال تعیین سخت‌افزار هستید، مقایسهٔ موتورها در Stalwart در برابر mailcow و Mailu در ۱۰ هزار صندوق آمده است.

JMAP برای همه جای IMAP را نمی‌گیرد. Outlook، Thunderbird و اپ‌های ایمیل گوشی هنوز با IMAP وصل می‌شوند و فن‌میل IMAP را برایشان روشن نگه می‌دارد، پس مهاجرت به آن کسی را مجبور به عوض کردن کلاینت ایمیل نمی‌کند.

آزموده در مقیاس واقعی

فن‌میل در مقیاس ۱۰ هزار صندوق به‌عنوان جایگزین کامل IceWarp در حال اجراست و پنل مدیریت داخلی آن کارهای روزمرهٔ سرور را انجام می‌دهد. بخش هزینهٔ این مهاجرت در مطالعهٔ موردی هزینهٔ ایمیل روی سرور خودتان آمده است و اگر هنوز بین سرویس میزبانی‌شده و سرور خودتان مردد هستید، فن‌میل در برابر Google Workspace و Zoho Mail را ببینید. وبمیل سریع هنوز به ورودی نیاز دارد که مردم واقعاً از آن استفاده کنند، برای همین فن‌میل کد یک‌بارمصرف پیامکی کنار اپ‌های احراز هویت هم دارد. جزئیات محصول در صفحهٔ فن‌میل است.

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

فرق JMAP و IMAP چیست؟

IMAP یک پروتکل متنی و حالت‌دار از ۱۹۸۶ است که امروز با نام IMAP4rev2 (RFC 9051) شناخته می‌شود و برای کلاینت دسکتاپی ساخته شده که اتصال را باز نگه می‌دارد. JMAP (RFC 8620 و RFC 8621، سال ۲۰۱۹) از JSON روی HTTPS استفاده می‌کند، چند کار را در یک درخواست جمع می‌کند، تغییرهای کل حساب را push می‌کند و اجازه می‌دهد کلاینت پس از قطعی از آخرین وضعیتش همگام شود.

آیا JMAP جایگزین IMAP می‌شود؟

نه برای همهٔ کلاینت‌ها. RFC 8621 طوری طراحی شده که یک سرور بتواند یک صندوق را با هر دو پروتکل ارائه دهد. وبمیل و اپ‌های موبایل بیشترین سود را از JMAP می‌برند، در حالی که Outlook، Thunderbird و اپ‌های ایمیل گوشی هنوز با IMAP وصل می‌شوند. فن‌میل IMAP را روشن نگه می‌دارد تا کاربران کلاینت فعلی‌شان را نگه دارند.

کدام سرورهای ایمیل JMAP را پشتیبانی می‌کنند؟

Stalwart Mail Server، سرور متن‌بازی که فن‌میل روی آن اجرا می‌شود، JMAP را کنار IMAP، POP3 و SMTP پشتیبانی می‌کند و فهرست RFCهایی را که پیاده کرده در مستنداتش آورده است. Fastmail هم که مهندسانش در نوشتن مشخصات JMAP شریک بودند از آن استفاده می‌کند. بسیاری از راهکارهای دیگر روی سرور خودتان هنوز فقط IMAP دارند.

آیا JMAP از IMAP سریع‌تر است؟

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

منابع

فن‌میل

سرویس ایمیل سازمانی self-hosted و فارسی‌محور — جایگزینی مستقل برای IceWarp و Exchange.

مشاهدهٔ محصول

اشتراک‌گذاری این مقاله