ترحيل البريد

أداة imapsync: خيارات تمنع فقدان البريد

بقلم Alexey Bulygin
خيارات imapsync التي تمنع فقدان البريد

imapsync هي الأداة التي يلجأ إليها الناس لنقل بريد IMAP من دون إجبار المستخدمين على تصدير PST أو استخدام تطبيقات سطح المكتب أو قضاء عطلة نهاية الأسبوع في التخمين. لكن المشكلة تبدأ بعد ذلك. خيار خاطئ أو ربط سيئ للمجلدات أو افتراض غير صحيح بشأن المصادقة قد ينهي الترحيل برسائل مرسلة مفقودة أو مجلدات مكررة أو بريد جديد حُذف عند التحويل. وللاطلاع على سير العمل الكامل، اقرأ هذا الدليل العملي إلى imapsync.

لذلك يتناول هذا المقال عمدا خيارات imapsync التي تغير النتائج فعلا: المهل الزمنية، وإشارات إبقاء الاتصال، وربط المجلدات، وتقييد السرعة، وإزالة التكرار، وخيارات الحذف التي قد تضر بصندوق نشط. عند نقل حساب واحد ستتجنب إعادة تشغيل فوضوية، وعند نقل خمسين حسابا لن تضطر إلى تفسير ظهور ثلاث نسخ من مجلد الرسائل المرسلة.

الخلاصة: إعدادات imapsync الافتراضية ليست خطة ترحيل، بل نقطة بداية. تحتاج عمليات الترحيل الفعلية إلى مراحل وقواعد واضحة للمجلدات وتحقق قبل تعديل MX. وإذا كانت الوجهة TrekMail، يستطيع معالج الاستيراد المدمج في الخطط المدفوعة إدارة جهة الاستقبال من لوحة التحكم، وهو أسرع من إدارة كل صندوق يدويا عبر نصوص shell. تبدأ منصة TrekMail من $3.50/month، وتستخدم مساحة تخزين مشتركة بدلا من رسوم كل مستخدم، وتدعم استيراد IMAP على الخادم من Gmail وOutlook وYahoo وiCloud وخدمات IMAP العامة.

لماذا تتعطل imapsync عند الثقة بالإعدادات الافتراضية؟

تنسخ imapsync البريد بين مخازن IMAP نشطة، لا بين ملفات ثابتة. ويجب أن تتعامل مع اختلاف هياكل المجلدات وخصائص الخوادم ومعرفات الرسائل ونماذج المصادقة بينما قد تقطع الشبكة الجلسة. لذلك تبدو الأوامر الآمنة أكثر تفصيلا من الأمثلة المنسوخة من المنتديات.

الأعطال الشائعة بسيطة في ظاهرها ومكلفة:

  1. تنتهي مهلة رفع الرسائل الكبيرة.
  2. تُربط أسماء المجلدات بصورة خاطئة، فيظن المستخدمون أن البريد اختفى.
  3. يقيّد المزود المهمة ويبدأ برفض الاتصالات.
  4. تمنع المصادقة الحديثة كلمات المرور العادية.
  5. تؤدي تغييرات حالة UID إلى تكرارات في المراحل اللاحقة.
  6. يحذف `--delete2` البريد الجديد من الوجهة بعد التحويل.

إذا كانت لديك عملية ترحيل «جيدة في معظمها باستثناء Sent Items»، فلم يكن ذلك عشوائيا. أتاح البروتوكول مجالا للخطأ ولم تحمك الإعدادات الافتراضية.

خيارات اتصال تبقي imapsync قيد العمل

في الصناديق الكبيرة تفشل imapsync غالبا لأن الاتصال ينقطع قبل اكتمال كتابة الرسالة. ومن الأسباب المعتادة عمليات APPEND الطويلة وخوادم Exchange البطيئة والجدران النارية التي تتتبع الحالة. الحل هو زيادة تحمل المهلة، وإرسال إشارات إبقاء الاتصال، وتخزين الحالة حتى لا تبدأ الإعادة من الصفر.

استخدم هذه الخيارات في أول مرحلة جدية:

imapsync \
  --host1 imap.source.tld --user1 user@source.tld --passfile1 ./pass1 \
  --host2 imap.dest.tld   --user2 user@dest.tld   --passfile2 ./pass2 \
  --timeout 120 \
  --keepalive1 --keepalive2 \
  --usecache

وظيفة كل خيار:

الخيارسبب أهميتهما الذي يتعطل من دونه
--timeout 120يمنح الرفع البطيء والمرفقات الكبيرة وقتا كافيا.تُتخطى الرسائل بعد انتهاء مهلة المقبس.
--keepalive1 --keepalive2يبقي جلستي IMAP نشطتين خلال فترات الخمول الطويلة.تقطع الجدران النارية أو موازنات الحمل الجلسة.
--usecacheيحفظ حالة مقارنة الرسائل محليا لتسريع الإعادة.تصبح مراحل الاستئناف أبطأ وتعيد فحص كل شيء.

التخزين المؤقت مهم لأن الترحيل الجيد تزايدي. تنفذ مرحلة جماعية، ثم تصلح المصادقة أو الربط، ثم تشغل مرحلة أو مرحلتين للحاق بالبريد. مع `--usecache` تقضي imapsync وقتا أقل في إعادة قراءة الجانبين. ومن دونه تصبح كل إعادة أثقل من اللازم.

هناك قيد واحد. تحذر وثائق imapsync الرسمية من أن `--usecache` قد لا يكون آمنا مع بعض تركيبات التصفية حسب الحجم والعمر. لا تضف مرشحات عشوائية لمجرد أنها تبدو فعالة. اجعل المرحلة الأولى بسيطة.

خيارات ربط المجلدات التي تمنع ذعر «المجلد المفقود»

عندما يقول المستخدمون إن imapsync فقدت المجلدات، غالبا ما يبقى البريد موجودا. تكون الوجهة قد فسرت مسار المصدر بشكل مختلف، أو لم يُربط مجلد خاص مترجم بمجلد الرسائل المرسلة النشط. تحتاج imapsync إلى تحويل صريح عندما تختلف المنصات.

أكبر مشكلتين هما فواصل التسلسل الهرمي والمجلدات الخاصة.

تستخدم بعض الخوادم النقاط للتداخل، بينما تستخدم أخرى الشرطات المائلة. إذا احتوى المصدر على INBOX.Clients.ProjectA وكانت الوجهة تتوقع INBOX/Clients/ProjectA، فيجب إعادة كتابة المسار أثناء النسخ.

imapsync \
  --host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
  --host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
  --regextrans2 's/\./\//g'

أما مجلد الرسائل المرسلة فتختلف تسميته بين المزودين، بينما لا يهم المستخدم سوى ظهور بريده في العرض النشط للرسائل المرسلة.

مجلد المصدرمجلد الوجهةالخيار المفيد
[Gmail]/Sent MailSent Items--regextrans2 's/^\[Gmail\]\/Sent Mail/Sent Items/'
SentSent Items--regextrans2 's/^Sent/Sent Items/'
Gesendete ElementeSent Items--regextrans2 's/^Gesendete Elemente/Sent Items/'

إذا كانت المجلدات الخاصة معيارية، فجرّب --automap أولا. أما صناديق cPanel الفوضوية أو المترجمة أو القديمة، فالتحويلات الصريحة بتعابير regex أكثر أمانا. يقدم TrekMail أيضا إرشادات حسب المصدر حول بدء الاستيراد من لوحة التحكم وتجهيز النطاق عبر إضافة نطاق.

مثال توضيحي: لم يختف المجلد، بل انتقل من المكان المتوقع إلى اسم أرشيف خام لا يعامله التطبيق كمجلد «مرسل». البيانات نفسها في المكان الخطأ تنتج تذكرة الدعم نفسها.

قيّد imapsync قبل أن يقيّدك Google أو Microsoft

قد تبدو imapsync للمزودين كحركة مسيئة. فالدفقات السريعة من أوامر APPEND وFETCH عبر صناديق كثيرة تشغّل قيود المعدل أو الإيقاف المؤقت أو أخطاء تشبه فشل المصادقة بينما سببها السعة. البطء المنتظم غالبا أسرع من التعرض للحظر.

عند استخدام Google Workspace أو Microsoft 365، تحكم في السرعة:

imapsync \
  --host1 imap.gmail.com --user1 user@source.tld --passfile1 ./pass1 \
  --host2 imap.trekmail.net --user2 user@dest.tld --passfile2 ./pass2 \
  --maxbytespersecond 500000 \
  --maxmessagespersecond 2

يقلل ذلك أولا طفرات النقل التي تشغل دفاعات المزود، ويحمي ثانيا البيئات المشتركة من دفعات الرسائل الصغيرة. وهذا مهم لخوادم cPanel القديمة ولمستأجري Office 365 المشغولين.

لا تعتبر الأرقام مقدسة، فهي قيم بداية. يعتمد الحد المناسب على حجم الصندوق والتوازي ومدى تقبل المزود لمهام IMAP الطويلة. القاعدة بسيطة: إذا بدأ الترحيل جيدا ثم تحول إلى أخطاء متقطعة، فأبطئه قبل افتراض خطأ كلمة المرور.

هنا يتضح الفرق بين الطريقة القديمة والجديدة.

الطريقة القديمة: كتابة نص لكل صندوق، وضبط الحدود بالتجربة، ومراقبة الأعطال الساعة 2 صباحا.

الطريقة الجديدة: استخدام استيراد TrekMail المدمج على الخادم في الخطط المدفوعة، وتوحيد الوجهة، وتجنب رسوم كل مستخدم. الوكالات التي تدير نطاقات كثيرة تهتم بعدم قضاء ثلاثة أيام في معالجة الإعادات أكثر من إنهاء صندوق قبل عشر دقائق. إذا كان هذا واقعك، فاقرأ دليل استضافة البريد لعدة نطاقات.

خيارات المصادقة لعامي 2025-2026: كلمات المرور تتراجع وOAuth يفوز

مع Google Workspace وMicrosoft 365، لم يعد ممكنا افتراض نجاح مصادقة IMAP باسم المستخدم وكلمة المرور. توضح Google أنه اعتبارا من 1 مايو 2025، لم تعد حسابات Workspace تدعم «التطبيقات الأقل أمانا» التي تدخل بهما فقط. وتوجه Microsoft عملاء IMAP في Exchange Online إلى OAuth أيضا.

هذا يغير طريقة تشغيل imapsync. إذا كان المصدر يدعم XOAUTH2، فأنت تحتاج إلى رمز وصول بدلا من كلمة مرور المستخدم العادية.

imapsync \
  --host1 outlook.office365.com \
  --user1 user@source.tld \
  --authmech1 XOAUTH2 \
  --oauthaccesstoken1 "ACCESS_TOKEN" \
  --host2 imap.trekmail.net \
  --user2 user@dest.tld --passfile2 ./pass2

في Google Workspace، قد تظل كلمات مرور التطبيقات خيارا عمليا لنقل صندوق واحد عند تفعيل التحقق بخطوتين 2-Step. وفي Microsoft 365 استخدم مسار OAuth الموثق للبروتوكولات القديمة. إذا كان النص يفترض أن «كلمة المرور الصحيحة تعني مصادقة صحيحة»، فهو متأخر عن الواقع.

المصادر المعتمدة: إرشادات Google Workspace بشأن التطبيقات الأقل أمانا وتعليمات Microsoft لاستخدام OAuth مع IMAP.

خيارات سلامة تمنع imapsync من تجاوز البريد التالف

بعض الرسائل تالفة، وهذا طبيعي في الخوادم القديمة. تظهر في الواقع رؤوس Message-ID مفقودة وMIME غير صالح ومرفقات ضخمة ومحتويات فارغة. يمكن لـ imapsync تجاوز بعض ذلك إذا حددت لها الطريقة.

أول خيار مفيد هو --addheader. تقول الوثائق الرسمية إنه يضيف رأس Message-Id مولدا عندما تفتقر الرسالة إليه. وهذا مهم لأن هوية الرسالة تحدد ما هو موجود مسبقا.

الثاني هو --maxsize. إذا رفضت الوجهة أو سياستها الرسائل الضخمة، فلا تدع رسالة واحدة تعطل المهمة كلها.

imapsync \
  --host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
  --host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
  --addheader \
  --maxsize 35000000

لا يعني ذلك تجاهل الرسائل الكبيرة. انقل 99% أولا، ثم عالج الاستثناءات يدويا عبر قائمة مضبوطة.

إذا كنت تنشئ صناديق كثيرة بالتوازي، فاربط ذلك بعملية إعداد منظمة. يستحق دليل TrekMail حول إنشاء حسابات البريد بالجملة القراءة، لأن فصل إنشاء الصناديق وتسليم كلمات المرور وتغييرات DNS بين جداول مختلفة يزيد المشكلات.

أخطر خيار لفقدان البيانات في imapsync: --delete2

يطلب `--delete2` من imapsync حذف الرسائل من الوجهة إذا لم تكن في المصدر. يبدو ذلك مفيدا للمطابقة الدقيقة، لكنه أسهل طريقة لحذف بريد جديد صالح بعد تحويل MX إذا استُخدم في الوقت الخطأ.

تسلسل الفشل:

  1. تنقل البريد القديم مسبقا من المصدر إلى الوجهة.
  2. تحول MX إلى المزود الجديد.
  3. يبدأ البريد الجديد بالوصول إلى الوجهة.
  4. تعيد تشغيل imapsync مع --delete2.
  5. ترى imapsync البريد الموجود في الوجهة فقط وتحذفه لأنه لم يوجد في المصدر.

هذا ليس خطأ في البرنامج، بل ما طلبت منه فعله تماما.

استخدم `--delete2` فقط في سيناريو مرآة مضبوط قبل التحويل، حين يظل الجانبان مرتبطين منطقيا بالمصدر القديم للحقيقة. بعد تغيير MX احذفه من الأمر. وإذا أصبحت الوجهة نشطة وتستقبل البريد، فاعتبرها المرجع للرسائل الجديدة.

عندما لا تكون UIDs موثوقة، استخدم مطابقة الرؤوس

لا تكون UIDs في IMAP موثوقة إلا ضمن حالة الخادم التي تنتمي إليها. يعرّف RFC 3501 قيمة UIDVALIDITY لأن افتراضات UID قد تنهار عند تغير حالة الصندوق. وإذا أُعيد بناء مجلد المصدر أو فهرسته، فقد تعتبر imapsync كل رسالة جديدة وتكررها لاحقا.

عندها تساعد المطابقة بالرؤوس:

imapsync \
  --host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
  --host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
  --useheader 'Message-Id'

هذا أبطأ من الثقة في UIDs الخادم، لكنه أكثر أمانا مع مصدر غير مستقر أو أعيد بناؤه أو غير متسق. تشير الوثائق الرسمية إلى أن مشكلات التكرار تُحل غالبا باستخدام --useheader "Message-Id".

للتحقق النهائي، نفذ مرحلة جافة بمطابقة متحفظة قبل تحويل DNS، ثم مرحلة فروق قصيرة بعد توقف المستخدمين عن الكتابة في النظام القديم.

قالب آمن لأمر imapsync

يكون التشغيل الآمن صريحا بشأن الاتصال والربط والاستثناءات ووضع الاختبار. ابدأ جافا، وتأكد من سلوك المجلدات، ثم نفذ المرحلة الحقيقية. لا تستخدم مسودة أمر أولى مع بريد الإنتاج.

imapsync \
  --host1 imap.gmail.com --user1 user@source.com --passfile1 ./pass1 \
  --host2 imap.trekmail.net --user2 user@dest.com --passfile2 ./pass2 \
  --timeout 120 --keepalive1 --keepalive2 \
  --usecache \
  --automap \
  --regextrans2 's/^\[Gmail\]\/Sent Mail/Sent Items/' \
  --exclude '^\[Gmail\]/All Mail' \
  --maxbytespersecond 500000 \
  --maxmessagespersecond 2 \
  --dry

ثلاث ملاحظات عملية:

  1. استخدم --dry أولا، دائما.
  2. استبعد مجلدات الأرشيف الضخمة التي لا تحتاجها في المرحلة الأولى.
  3. سجل المخرجات واحفظ إصدارات الأوامر لكل دفعة ترحيل.

بعد وصول الصندوق إلى TrekMail، يتصل المستخدمون عبر IMAP القياسي بـ imap.trekmail.net على المنفذ 993. يدعم TrekMail بروتوكول IMAP فقط، لا POP3، وهو الخيار المناسب لمزامنة الحالة بين الأجهزة.

الخلاصة: تعمل imapsync جيدا عندما تُدار كأداة ترحيل

تظل imapsync الأداة المناسبة لعمليات كثيرة، بشرط معاملتها كبرنامج ترحيل يحتفظ بالحالة لا كأمر نسخ بسيط. اضبط المهل، واستخدم keepalive، واربط المجلدات بعناية، وأبطئ عند فرض القيود، واستخدم المصادقة الحديثة، وأبعد `--delete2` عن البريد بعد التحويل. وعند الشك في حالة UID، افرض المطابقة بالرؤوس.

لتسهيل إدارة جهة الاستقبال، يقدم TrekMail وجهة متعددة النطاقات بسعر ثابت ومساحة مشتركة واستيراد مدمج على الخادم في الخطط المدفوعة، ومن دون رسوم عند إضافة كل صندوق. وبعد النقل، يوفر دليل البريد الإلكتروني للأعمال أساسا تشغيليا مفيدا.

شارك هذه المقالة

نستخدم التقنيات الضرورية لتشغيل TrekMail وحمايته. عند التأكيد، تسمح أيضًا بتحليلات محدودة وقياس الإعلانات كما هو موضح في سياسة ملفات تعريف الارتباط.

تسجيل الدخول إلى TrekMail

الوصول إلى لوحة التحكم وصناديق البريد وإعدادات DNS الخاصة بك.

أو

12 أحرف كلمتا المرور متطابقتان

أو

تم إرسال بريد إعادة التعيين

إذا كان هناك حساب مرتبط بهذا البريد الإلكتروني، فقد أرسلنا تعليمات إعادة تعيين كلمة المرور.

بالمتابعة، فإنك توافق على شروط TrekMail و سياسة الخصوصية.