OFFLINEIMAP(1)   OFFLINEIMAP(1)

offlineimap - همگام‌سازی دوطرفه یا یک‌طرفه صندوق‌های پستی و دایرکتوری‌های Maildir

offlineimap (گزینه‌ها)

همگام‌سازی حساب‌های پیکربندی‌شده در فایل پیکربندی از طریق IMAP. هر حساب دارای دو سمت است. یک سمت باید یک سرور IMAP باشد. سمت دیگر می‌تواند یک Maildir یا یک سرور IMAP دیگر باشد.

با پایتون ۳ کار می‌کند.

-h, --help

نمایش خلاصه گزینه‌ها.

--version

چاپ نسخه.

-V

چاپ نسخه offlineimap و اطلاعات تکمیلی imaplib2.

--dry-run

اجرا در حالت آزمایشی (خشک).

هیچ فضایی را در عمل تغییر نمی‌دهد، بلکه بررسی و چاپ می‌کند که در صورت انجام همگام‌سازی چه اقداماتی صورت می‌گیرد. این گزینه دقیقاً مشخص نمی‌کند چه رخ خواهد داد؛ به عنوان مثال اگر نیاز به ایجاد یک پوشه باشد، صرفاً عبارت Would create folder X را چاپ می‌کند، نه اینکه چه تعداد و کدام نامه‌ها را منتقل خواهد کرد.

--info

چاپ اطلاعات مربوط به مخازن ایمیل پیکربندی‌شده.

برای اشکال‌زدایی و گزارش باگ مفید است. در ترکیب با گزینه ‘-a’ برای محدود کردن خروجی به یک حساب منفرد استفاده شود. این حالت از انجام هرگونه همگام‌سازی واقعی جلوگیری کرده و پس از چاپ اطلاعات اشکال‌زدایی خارج می‌شود.

-1

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

این گزینه متغیرهای فایل پیکربندی شامل maxsyncaccounts و تمامی maxconnections را به 1 (عدد یک) تنظیم می‌کند.

-P <directory>

قرار دادن OfflineIMAP در حالت تحلیل کارایی (profile).

برنامه پوشه مشخص‌شده (DIR) را ایجاد خواهد کرد (این پوشه نباید از قبل وجود داشته باشد). در حین اجرا، اطلاعات تحلیل کارایی پایتون مربوط به هر ریسمان در profiledir ثبت می‌شود. لطفاً توجه داشته باشید: این گزینه فقط برای اشکال‌زدایی و بهینه‌سازی در نظر گرفته شده است و نباید استفاده شود مگر اینکه دلیل خاصی برای آن داشته باشید. این گزینه کارایی برنامه را به میزان چشمگیری کاهش می‌دهد، ممکن است قابلیت اطمینان را کم کند و می‌تواند حجم عظیمی از داده تولید نماید. این گزینه متضمن گزینه ‘-1’ نیز هست.

-a <account1[,account2[,...]]>

بخش حساب‌ها (accounts) در فایل پیکربندی را بازنویسی می‌کند.

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

-c <path/to/configuration_file>

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

-d <type1[,type2[,...]]>

فعال‌سازی اشکال‌زدایی برای OfflineIMAP.

این گزینه هنگامی کاربرد دارد که بخواهید یک اشکال را پیگیری کرده یا از آنچه در پشت صحنه می‌گذرد آگاه شوید. این گزینه به یک یا چند نوع دیباگ نیاز دارد که با کاما از هم جدا می‌شوند. این انواع مشخص می‌کنند چه مواردی دیباگ خواهند شد و تاکنون شامل گزینه‌های زیر هستند: "imap"، "thread"، "maildir" یا "ALL". گزینه imap اشکال‌زدایی جریان پروتکل IMAP و تجزیه آن را فعال می‌کند. توجه داشته باشید که خروجی ممکن است حاوی گذرواژه‌ها باشد، بنابراین پیش از ارسال آن برای دیگران حتماً آن‌ها را از خروجی اشکال‌زدایی پاک کنید. گزینه maildir اشکال‌زدایی عملیات خاص Maildir را فعال می‌کند. استفاده از هر گزینه اشکال‌زدایی (مگر اینکه شامل "thread" باشد) متضمن گزینه تک‌ریسمانی ‘-1’ است.

-l <path/to/file.log>

ارسال لاگ‌ها به <file.log>.

-s

ارسال لاگ‌ها به سامانه لاگ سیستمی (syslog).

-f <folder1[,folder1[,...]]>

تنها همگام‌سازی پوشه‌های مشخص‌شده.

نام پوشه‌ها همان نام‌های ترجمه‌نشده در مخزن راه دور (remote) هستند. این گزینه خط فرمان، هرگونه تنظیمات folderfilter و folderincludes در فایل پیکربندی را بازنویسی می‌کند.

-k <[section:]option=value

بازنویسی هر گزینه‌ای از فایل پیکربندی.

اگر "section" ذکر نشود، پیش‌فرض آن "general" خواهد بود. هرگونه زیرخط (_) در نام بخش با فاصله جایگزین می‌شود؛ به عنوان مثال، برای بازنویسی گزینه "autorefresh" در بخش "[Account Personal]" در فایل پیکربندی، می‌توان از ‘-k Account_Personal:autorefresh=30’ استفاده کرد. برای بازتعریف چندین گزینه، این گزینه را به تعداد لازم تکرار کنید.

-o

تنها یک‌بار اجرا شود.

نادیده گرفتن تنظیم autorefresh در فایل پیکربندی.

-q

تنها اجرای همگام‌سازی‌های سریع.

نادیده گرفتن به‌روزرسانی پرچم‌ها در سرورهای IMAP. اگر پرچمی در IMAP راه دور تغییر کند و ما نامه را به صورت محلی داشته باشیم، در اجرای سریع دست‌نخورده باقی می‌ماند. در صورت تنظیم بودن maxage، این گزینه نادیده گرفته می‌شود.

-u <UI>

مشخص کردن رابط کاربری جایگزین برای استفاده.

این گزینه مقدار پیش‌فرض مشخص‌شده در فایل پیکربندی را بازنویسی می‌کند. رابط کاربری مشخص‌شده با ‘-u’ اجباراً استفاده خواهد شد، حتی اگر بررسی‌ها نشان دهند قابل استفاده نیست. رابط‌های کاربری ممکن عبارتند از: quiet، basic، syslog، ttyui، blinkenlights، machineui.

--delete-folder

حذف یک پوشه در مخزن راه دور.

برای کارکرد این قابلیت باید تنها یک حساب مشخص/پیکربندی شده باشد یا باید یک حساب را با -a تعیین کنید. نام پوشه باید با جداکننده‌های راه دور (احتمالاً /) به صورت UTF-8 در صورت فعال بودن utf8foldernames یا در غیر این صورت به صورت IMAP ارائه شود؛ مانند: "Remote/folder/name".

--migrate-fmd5-using-nametrans

مهاجرت درهم‌سازهای FMD5 از نسخه‌های پیش از 6.3.5.

نحوه محاسبه درهم‌سازهای FMD5 در نسخه 6.3.5 تغییر کرد (اکنون از نام پوشه nametrans استفاده می‌کند) که باعث ایجاد یک پس‌رفت شد که ممکن است منجر به بارگذاری مجدد تمام پیام‌ها گردد. تلاش برای رفع این مشکل با محاسبه مقادیر صحیح FMD5 و تغییر نام پیام‌های متناظر انجام می‌شود.


احتیاط (Caution)

از آنجا که بخش FMD5 نام فایل تغییر می‌کند، این امر ممکن است منجر به تداخل UIDها شود. اطمینان حاصل کنید که پیش از اجرای این رفع اشکال، یک نسخه پشتیبان مناسب از کَش و Maildir تهیه کرده و ابتدا نتایج را با فلگ ‘--dry-run’ بررسی کنید.

--mbnames-prune

حذف ورودی‌های معلق برای حساب‌های حذف‌شده یا در صورتی که mbnames دیگر فعال/استفاده نشود.

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

امکان حذف دستی فایل‌های میانی در <metadata>/mbnames/ وجود دارد.

توجه داشته باشید که این گزینه از --dry-run پیروی می‌کند.

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

1.همگام‌سازی بیش از یک حساب.

به طور پیش‌فرض ما تنها از یک اتصال به سرور IMAP استفاده می‌کنیم. استفاده از ۲ یا حتی ۳ اتصال در اکثر موارد کارها را به میزان قابل توجهی تسریع می‌کند. به منظور همگام‌سازی همزمان بیش از یک حساب، اجرای یک نمونه از offlineimap را به ازای هر حساب در نظر بگیرید.


هشدار (Warning)
فعال کردن گزینه‌های maxsyncaccounts و maxconnections منسوخ شده است زیرا مشخص شده که دارای شرایط رقابتی (race conditions) هستند.
2.استفاده از folderfilters.

سریع‌ترین همگام‌سازی، همگام‌سازی‌ای است که بتواند برخی پوشه‌ها را نادیده بگیرد. من صندوق ورودی‌ام را در پوشه‌های ماهانه مرتب می‌کنم و هر پوشه‌ای را که بیش از ۲-۳ ماه قدمت دارد نادیده می‌گیرم؛ این کار باعث می‌شود در هر بار همگام‌سازی فقط کسری از نامه‌هایم را بررسی کنم. اگر هنوز این کار را نکرده‌اید، انجامش دهید :). بخش folderfilter در offlineimap.conf را ببینید.

3.حافظه پنهان اس‌کیولایت (sqlite cache).

ابزار OfflineImap وضعیت همگام‌سازی را کَش می‌کند تا بتواند به عنوان مثال تشخیص دهد که آیا نامه‌ای در هر یک از دو سمت اضافه یا حذف شده است یا خیر.

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

کَش وضعیت قدیمی با متن ساده دیگر پشتیبانی نمی‌شود، اما مهاجرت از یک نصب بسیار قدیمی با استفاده از کَش متن ساده همچنان پشتیبانی می‌شود. در این حالت، ممکن است بخواهید دایرکتوری کَش قدیمی در <metadata>/Account-<account>/LocalStatus را به صورت دستی حذف کنید (کَش sqlite در پوشه LocalStatus-sqlite قرار دارد). ابتدا اطمینان حاصل کنید که نسخه جدید offlineimap را برای تمام حساب‌های خود اجرا کرده‌اید تا کَش وضعیت مهاجرت داده شده باشد.

4.استفاده از همگام‌سازی سریع (quick sync).

یک همگام‌سازی عادی تمامی پرچم‌ها و شناسه‌های یکتای (UID) همه نامه‌ها را در هر پوشه درخواست می‌کند که زمان زیادی می‌برد. یک همگام‌سازی سریع فقط تعداد پیام‌ها در یک پوشه را در سمت IMAP مقایسه می‌کند (اگرچه تغییرات پرچم در سمت Maildir را تشخیص خواهد داد). یک همگام‌سازی سریع در حساب نه‌چندان بزرگ من، به جای ۴۰ ثانیه، تنها ۷ ثانیه طول می‌کشد. برای مثال، می‌توانید یک اسکریپت کران (cron) اجرا کنید که روزی یک بار همگام‌سازی عادی انجام دهد و در فواصل زمانی، همگام‌سازی‌های سریع با ‘-q’ را تنها برای همگام‌سازی ‘-f INBOX’ اجرا نماید.

5.خاموش کردن fsync.

در بخش [general] می‌توانید fsync را به True یا False تنظیم کنید. اگر می‌خواهید ۱۱۰٪ ایمن عمل کنید و پیش از ادامه کار منتظر بمانید تا تمامی عملیات روی دیسک اعمال شوند، می‌توانید آن را به True تنظیم نمایید. اگر آن را روی False بگذارید، مقداری از این ایمنی را از دست داده و آن را با سرعت معاوضه می‌کنید.

به طور پیش‌فرض، OfflineIMAP با استفاده از هر روشی که openssl پشتیبانی کند، یعنی SSLv2، SSLv3 یا TLSv1 متصل می‌شود.

توجه داشته باشید که پروتکل SSLv2 به شدت ناامن و منسوخ شده است. متأسفانه python2 روش‌های آسانی برای غیرفعال کردن SSLv2 ارائه نمی‌دهد. توصیه می‌شود پیکربندی خود را بررسی کرده و مطمئن شوید که سرور ایمیل از اتصال SSLv2 استفاده نمی‌کند. به عنوان مثال، از دستور "openssl s_client -host mail.server -port 443"; استفاده کنید تا متوجه شوید چه اتصالی به صورت پیش‌فرض استفاده می‌شود.

•بررسی گواهی (Certificate checking)

متأسفانه، به طور پیش‌فرض ما گواهی سرور IMAP مبتنی بر TLS/SSL که به آن متصل می‌شویم را اعتبارسنجی نمی‌کنیم، بنابراین اتصال از طریق SSL هیچ تضمینی در برابر حملات مرد میانی (man-in-the-middle) ایجاد نمی‌کند. در حین اعتبارسنجی گواهی سرور، بررسی اثر انگشت (fingerprint) توصیه می‌شود. در حال حاضر تنها یک راه امن برای اطمینان از اتصال رمزگذاری‌شده به سرور صحیح وجود دارد: می‌توانید تنظیم sslcacertfile را در بخش مخزن فایل offlineimap.conf مشخص کنید که به فایلی اشاره دارد که (در میان موارد دیگر) حاوی یک گواهی CA در قالب PEM است که گواهی سرور شما را اعتبارسنجی می‌کند. در این حالت، ما موارد زیر را بررسی خواهیم کرد:

1.گواهی SSL سرور توسط گواهی CA اعتبارسنجی شود.
2.نام میزبان سرور با گواهی SSL مطابقت داشته باشد.
3.تاریخ انقضای گواهی سرور نگذشته باشد.

بخش سوالات متداول (FAQ) مطلبی در مورد نحوه ایجاد گواهی اختصاصی و گواهی CA دارد.

•قابلیت StartTLS

اگر حساب خود را طوری پیکربندی نکرده باشید که از طریق SSL متصل شود، در صورتی که سرور IMAP پشتیبانی کند، OfflineImap همچنان تلاش خواهد کرد اتصالی از طریق تابع STARTTLS برقرار کند.

هنگام استفاده از STARTTLS هیچ‌گونه بررسی گواهی یا اثر انگشت انجام نمی‌شود (کتابخانه زیربنایی imaplib هنوز از این قابلیت پشتیبانی نمی‌کند). این بدان معناست که شما در برابر شنود غیرفعال محافظت خواهید شد و آن‌ها نمی‌توانند گذرواژه یا محتوای ایمیل شما را ببینند. با این حال، این کار شما را در برابر حملات فعال محافظت نمی‌کند، مانند حملات مرد میانی که باعث می‌شوند به سرور اشتباه متصل شوید و آن سرور وانمود کند سرور ایمیل شماست.

برای یک اتصال امن که اصالت سرور IMAP شما را تضمین کند، به STARTTLS اتکا نکنید!

•گزینه allow_nonstandard_capabilities

برخی از سرورهای غیراستاندارد IMAP پس از تکمیل دست‌تکانی STARTTLS، پاسخ CAPABILITY را ارسال نمی‌کنند، در حالی که در RFC 2595 الزامی شده است. به طور پیش‌فرض، OfflineIMAP در این شرایط با خطا متوقف می‌شود تا از ادامه کار بر روی یک کانال رمزگذاری‌شده بالقوه آسیب‌دیده جلوگیری کند.

تنظیم allow_nonstandard_capabilities = yes در بخش مخزن، یک راهکار پشتیبان به کار می‌گیرد: OfflineIMAP از قابلیت‌های اعلام‌شده پیش از STARTTLS مجدداً استفاده می‌کند و LOGINDISABLED را حذف می‌کند تا احراز هویت بتواند روی اتصال رمزشده (فرضی) ادامه یابد.

هشدار: این گزینه را تنها زمانی فعال کنید که مطمئن شده باشید TLS واقعاً به درستی برقرار شده است. اگر سرور STARTTLS را به درستی اجرا نکند، فعال کردن این گزینه می‌تواند باعث ارسال اطلاعات هویتی به صورت متن ساده شود.

پیش‌فرض: no.

دستور OfflineImap به سیگنال‌های یونیکس SIGUSR1، SIGUSR2، SIGTERM، SIGINT، SIGHUP، SIGQUIT گوش می‌دهد.

•اگر سیگنال SIGUSR1 ارسال شود، هرگونه حالت خواب فعلی (یا آتی) تمام حساب‌هایی را که روی autorefresh تنظیم شده‌اند لغو می‌کند. در عمل، این امر باعث می‌شود که در اسرع وقت یک همگام‌سازی کامل برای تمامی حساب‌ها انجام پذیرد.
•اگر سیگنال SIGUSR2 یا SIGABRT ارسال شود، حالت autorefresh را برای تمام حساب‌ها متوقف می‌کند. به این معنی که حساب‌ها حالت خواب فعلی را لغو کرده و پس از اتمام همگام‌سازیِ در حال اجرا خارج می‌شوند. از این سیگنال می‌توان برای خروج منظم از "دیمن" offlineimap در حال اجرا استفاده کرد.
•سیگنال‌های SIGTERM، SIGINT، SIGHUP همگی برای خاتمه منظم در سریع‌ترین زمان ممکن پردازش می‌شوند. این بدان معناست که برنامه همگام‌سازی پوشه فعلی در هر حساب را به پایان رسانده، اتصالات زنده (keep alive) را بسته، قفل‌های حساب‌ها را برداشته و خارج می‌شود.

در صورت استفاده از گزینه autorefresh، ممکن است تا ۱۰ ثانیه طول بکشد.

ارسال بیش از یک SIGTERM رفتاری مشابه با SIGQUIT خواهد داشت.

•اگر سیگنال SIGQUIT ارسال شود، ردپای پشته (stack trace) را برای تمامی ریسمان‌ها چاپ کرده و تلاش می‌کند یک فرایند تخلیه حافظه (core dump) انجام دهد.

•حذف‌ها (Deletions).

در حین اجرای عادی، حذف‌ها منتقل می‌شوند. برای جلوگیری از دست رفتن داده‌ها، حذف یک پوشه باعث می‌شود offlineimap مجدداً آن پوشه را همگام‌سازی کند. با این حال، انتقال حذف کل محتوای یک پوشه می‌تواند در دو حالت زیر رخ دهد:

•تمام محتوای یک پوشه حذف شده باشد اما دایرکتوری پوشه همچنان وجود داشته باشد.
•دایرکتوری والدِ پوشه حذف شده باشد.
•خطای SSL3 write pending.

کاربرانی که SSL را فعال می‌کنند ممکن است با خطای "SSL3 write pending" مواجه شوند. در این صورت، حساب(ها) از زمان بروز این باگ همگام‌نشده باقی می‌مانند. اجرای مجدد OfflineIMAP می‌تواند کمک کند. ما همچنان در حال کار بر روی این اشکال هستیم. دریافت وصله‌ها یا گزارش‌های دقیق باگ مورد استقبال است. لطفاً بررسی کنید که آخرین نسخه پایدار را اجرا می‌کنید و گزارشی همراه با گزارش کامل لاگ به فهرست ایمیل ما ارسال کنید.

•پشتیبانی از IDLE ناقص و تجربی است. ممکن است با باگ‌هایی مواجه شوید.
•هیچ هوکی (hook) برای "اجرا پس از پاسخ IDLE" وجود ندارد.

ایمیل ظاهر می‌شود، اما ممکن است تا چرخه بازخوانی بعدی پردازش نشود.

•ممکن است nametrans به درستی پشتیبانی نشود.
•حالت IMAP IDLE <→ IMAP IDLE هنوز کار نمی‌کند.
•ویژگی IDLE ممکن است در صورت تعلیق/ادامه به کار سیستم (suspend/resume) همگام‌سازی را متوقف کند.
•ویژگی IDLE ممکن است تنها «یک‌بار» در هر چرخه بازخوانی کار کند.

اگر با این باگ مواجه شدید، لطفاً گزارشی به فهرست ایمیل ارسال کنید!

•پشتیبانی از Maildir در درایو ویندوز.

قالب Maildir از نویسه دونقطه (:) در نام فایل‌های پیام استفاده می‌کند. با این حال، دونقطه در درایوهای ویندوز یک نویسه غیرمجاز است. چندین راهکار برای این وضعیت وجود دارد:

1.فعال‌سازی تبدیل نویسه‌های نام فایل در رجیستری ویندوز (آزمایش‌نشده).
2.استفاده از مانت مدیریت‌شده سیگوین (cygwin managed mount) (آزمایش‌نشده).
•از نسخه cygwin 1.7 به بعد دیگر در دسترس نیست.
3.استفاده از تنظیم "maildir-windows-compatible = yes" در پیکربندی حساب OfflineIMAP.
•این کار باعث می‌شود OfflineIMAP به جای دونقطه از علامت تعجب (!) برای ذخیره پیام‌ها استفاده کند. چنین فایل‌هایی را می‌توان در پارتیشن‌های ویندوز نوشت. اما احتمالاً سازگاری با سایر برنامه‌هایی که تلاش می‌کنند همان Maildir را بخوانند از دست خواهد رفت.
•علامت تعجب به دلیل یادداشت موجود در پیوند زیر انتخاب شده است: http://docs.python.org/library/mailbox.html
•اگر پیام‌هایی دارید که پیش‌تر بدون این گزینه ذخیره شده‌اند، باید آن‌ها را دوباره همگام‌سازی کنید.
•سردرگمی OfflineIMAP پس از تعلیق سیستم (suspend).

هنگام بازگشت از یک نشست تعلیق‌شده، اگر گزینه socktimeout تنظیم نشده باشد، OfflineIMAP سوکت(های) قطع‌شده را به درستی مدیریت نمی‌کند. باید این گزینه را با مقداری مانند 10 فعال کنید.

•سردرگمی OfflineIMAP هنگام تغییر نامه‌ها حین همگام‌سازی.

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

•به اشتراک‌گذاری یک maildir با چندین سرور IMAP.

به طور کلی هشداری درباره ترکیب مخازن IMAP در یک ریشه Maildir یکسان وجود دارد. باید بسیار مراقب باشید که هرگز از یک پوشه maildir برای ۲ سرور IMAP استفاده نکنید. در بهترین حالت، مقدار MD5 پوشه متفاوت خواهد بود و در چرخه‌ای گرفتار می‌شوید که نامه‌ها را به نوبت در هر دو سرور (به صورت نامحدود!) بارگذاری می‌کند، زیرا تصور می‌کند نامه‌های جدیدی در Maildir محلی قرار داده‌اید. در بدترین حالت، مقدار MD5 یکسان است (محتمل) و شناسه‌های UID نامه‌ها همپوشانی دارند (این هم محتمل است!) و در همگام‌سازی برخی نامه‌ها ناموفق خواهد بود زیرا تصور می‌کند از قبل وجود دارند.

من برای جیمیل شخصی یک مخزن Maildir محلی جدید ایجاد می‌کنم و برای اطمینان از ریشه متفاوتی استفاده می‌کنم. به عنوان مثال می‌توانید از موارد زیر استفاده کنید:

`~/mail/Pro' به عنوان ریشه Maildir برای ProGmail و
`~/mail/Personal' به عنوان ریشه برای جیمیل شخصی.

اگر سپس mutt محلی یا هر برنامه MUA دیگری را که استفاده می‌کنید به ‘~/mail/’ به عنوان ریشه تنظیم کنید، همچنان باید تمامی پوشه‌ها را شناسایی کند.

•حالت‌های خاص با maxage که باعث همگام‌سازی تعداد بیش از حد پیام‌ها می‌شود.

تمام پیام‌های مربوط به حداکثر maxage روز پیش (+/- چند ساعت، بسته به مناطق زمانی) همگام‌سازی می‌شوند، اما مواردی وجود دارد که در آن‌ها پیام‌های قدیمی‌تر نیز ممکن است همگام‌سازی شوند. این زمانی اتفاق می‌افتد که UID یک پیام به طور قابل توجهی بالاتر از UID سایر پیام‌های با تاریخ مشابه باشد؛ برای مثال زمانی که پیام‌ها بدون اطلاع offlineimap به پوشه محلی اضافه می‌شوند که باعث تخصیص UID جدید به آن‌ها می‌گردد، یا زمانی که offlineimap برای اولین بار یک Maildir از قبل موجود را همگام‌سازی می‌کند. در حالت اخیر، ممکن است به نظر برسد که زیرمجموعه‌ای تصادفی و قابل توجه از پیام‌های قدیمی همگام‌سازی شده‌اند.

•متوقف شدن Offlineimap (هنگ کردن).

هنگام مواجهه با قفل شدن‌های غیرمنتظره، توصیه می‌شود ‘singlethreadperfolder’ را روی yes تنظیم کنید، به ویژه در حالت IMAP/IMAP (بدون maildir).

•گذرواژه‌ها در netrc.

ابزار Offlineimap در صورتی که بیش از یک حساب در فایل netrc ذخیره شده باشد، نحوه بازیابی گذرواژه‌ها را نمی‌داند. پیوند زیر را ببینید: https://github.com/OfflineIMAP/offlineimap/issues/295

•قابلیت XOAUTH2

راه‌اندازی XOAUTH2 ممکن است کمی دشوار باشد. اطمینان حاصل کنید که راهنمای گام‌به‌گام در offlineimap.conf را دنبال کرده‌اید. باگ‌های شناخته‌شده در مورد Gmail در نشانی زیر پیگیری می‌شوند: https://github.com/OfflineIMAP/offlineimap/labels/Gmail

گاهی اوقات، ممکن است با یکی از خطاهای زیر مواجه شوید:

•[imap]: xoauth2handler: response "{u’error': u’invalid_grant'}"
•oauth2handler got: {u’error': u’invalid_grant'}

در چنین حالتی، گزارش‌هایی داشته‌ایم مبنی بر اینکه ایجاد یک توکن بازخوانی (refresh token) جدید از همان کلاینت‌آیدی و کلید مخفی می‌تواند کمک‌کننده باشد.

مستندات گوگل درباره "invalid_grant".

هنگامی که تلاش می‌کنید از یک توکن بازخوانی استفاده کنید، موارد زیر باعث خطای
invalid_grant می‌شوند:
  - ساعت سرور شما با پروتکل زمان شبکه (NTP) همگام نیست.
  - محدودیت توکن بازخوانی به پایان رسیده است.

انقضای توکن (Token expiration).

این امکان وجود دارد که یک توکن اعطا شده دیگر کار نکند. یک توکن ممکن است
به یکی از دلایل زیر متوقف شود:
  - کاربر دسترسی را لغو کرده باشد.
  - توکن به مدت شش ماه استفاده نشده باشد.
  - کاربر گذرواژه را تغییر داده باشد و توکن شامل دامنه‌های Gmail باشد.
  - حساب کاربری از تعداد معینی درخواست توکن فراتر رفته باشد.
در حال حاضر محدودیت ۵۰ توکن بازخوانی به ازای هر حساب کاربری در هر کلاینت وجود دارد. اگر
محدودیت تکمیل شود، ایجاد یک توکن جدید به طور خودکار قدیمی‌ترین توکن را بدون
هشدار باطل می‌کند. این محدودیت برای حساب‌های سرویس اعمال نمی‌شود.

برای اطلاعات بیشتر ببینید: https://developers.google.com/analytics/devguides/config/mgmt/v3/authorization و https://developers.google.com/identity/protocols/OAuth2#expiration

•خطای "does not have message with UID" در سرورهای مایکروسافت
`ERROR: IMAP server 'Server ### Remote' does not have a message with UID 'xxx'`

سرورهای IMAP مایکروسافت با استانداردهای RFC سازگار نیستند. در حال حاضر لازم است برخی از پوشه‌های دارای اشکال با folderfilter فیلتر شوند. برای فهرست دقیق ببینید: http://www.offlineimap.org/doc/FAQ.html#exchange-and-office365

John Goerzen, Sebastian Spaetz, Eygene Ryabinkin, Nicolas Sebrecht.

offlineimapui(7), openssl(1), signal(7), sqlite3(1).
http://www.offlineimap.org
08/10/2026