نقل صناديق البريد بين السيرفرات: imapsync بدون فقدان رسالة واحدة

نقل البريد بلا فقدان رسالة يعتمد على خطة من أربع خطوات: جرد الصناديق، مزامنة أولى، فرق تزايدي، ثم تبديل MX بTTL منخفض. تعرف على أوامر imapsync العملية وطريقة التحقق بعدد الرسائل والأحجام.
نقل صناديق البريد بين سيرفرين بدون فقدان رسالة واحدة ممكن تماماً إذا اتبعت خطة من أربع خطوات بدل نسخ عشوائي. الخطوة الأولى جرد الصناديق: احصل على قائمة كل الحسابات وأحجامها وعدد رسائلها من السيرفر المصدر، فهذا رقمك المرجعي للتحقق لاحقاً. الخطوة الثانية مزامنة أولى كاملة بأداة imapsync وأنت لا تزال تستقبل على السيرفر القديم، فتنقل الجزء الأكبر من البيانات دون أي توقف للخدمة. الخطوة الثالثة فرق تزايدي: أعد تشغيل imapsync قبل التبديل مباشرة فينقل فقط الرسائل الجديدة التي وصلت أثناء المزامنة الأولى، وهذه العملية سريعة لأن الأغلبية منقولة. الخطوة الرابعة تبديل سجل MX بعد أن تكون قد خفّضت قيمة TTL مسبقاً إلى 300 ثانية، فينتقل استقبال البريد للسيرفر الجديد خلال دقائق لا ساعات. المفتاح كله في خفض TTL قبل يوم أو يومين من النقل، وفي التحقق بمطابقة عدد الرسائل والأحجام بين المصدر والوجهة قبل إغلاق الحساب القديم. بهذه الطريقة لا تُفقد رسالة، ولا يشعر المستخدم بانقطاع يُذكر.
لماذا imapsync هو الأداة الصحيحة
imapsync أداة سطر أوامر تنقل الرسائل بين خادمي IMAP مع حفظ كامل للبنية: المجلدات، حالة القراءة، الأعلام (flags)، والتواريخ الأصلية. ميزتها الأهم أنها تزايدية بطبيعتها، أي إذا شغّلتها مرة ثانية لا تكرّر نقل ما نُقل بل تنقل الجديد فقط، وهذا هو أساس خطة الفرق التزايدي التي تحقق صفر توقف تقريباً. تعمل من أي جهاز وسيط يصل للسيرفرين عبر IMAP، ولا تحتاج صلاحية root على أي منهما، فيكفي بيانات دخول كل حساب أو حساب مدير يصل لكل الصناديق.
البديل عن imapsync هو التصدير والاستيراد اليدوي عبر ملفات، وهو بطيء ومعرّض للخطأ ويفقد أحياناً حالة القراءة وبنية المجلدات. لنقل مؤسسي بعشرات الحسابات، imapsync هو المعيار العملي.
الخطوة 1: جرد الصناديق
قبل نقل أي شيء، اعرف ما تنقله بالأرقام. جهّز جدولاً بكل حساب وحجمه وعدد رسائله، فهذا مرجعك للتحقق. تقدير المدة يعتمد على الحجم الإجمالي وسرعة النقل، والقاعدة التقريبية أن imapsync ينقل بين 1 و3 جيجابايت في الساعة حسب عدد الرسائل وحجمها وسرعة الشبكة وحدود المزوّد المصدر. الرسائل الصغيرة الكثيرة أبطأ من الرسائل الكبيرة القليلة بنفس الحجم، لأن كل رسالة تتطلب تبادل أوامر IMAP مستقلاً.
| حجم الصناديق الإجمالي | المدة التقديرية للمزامنة الأولى | ملاحظة |
|---|---|---|
| حتى 10 جيجابايت | من 4 إلى 10 ساعات | يمكن إنهاؤها في ليلة واحدة |
| من 10 إلى 50 جيجابايت | من يوم إلى يومين | وزّع الحسابات على دفعات متوازية |
| أكثر من 50 جيجابايت | من يومين إلى عدة أيام | ابدأ مبكراً وراقب حدود المزوّد المصدر |
الخطوة 2: خفض TTL أولاً
هذه خطوة يغفلها كثيرون فتطول مدة الانقطاع بلا داعٍ. قبل يوم أو يومين من موعد التبديل، ادخل على إدارة DNS للنطاق وخفّض قيمة TTL لسجل MX إلى 300 ثانية (خمس دقائق). قيمة TTL هي المدة التي تحتفظ فيها خوادم DNS حول العالم بالسجل القديم في ذاكرتها المؤقتة، فإذا كانت 86400 ثانية (يوم كامل) فقد يستمر بعض المرسلين في إرسال بريدك للسيرفر القديم يوماً بعد التبديل. بخفضها إلى خمس دقائق مسبقاً، يصبح انتشار التبديل شبه فوري وقت التنفيذ.
الخطوة 3: المزامنة الأولى ثم الفرق التزايدي
شغّل imapsync للمزامنة الأولى الكاملة والسيرفر القديم لا يزال يستقبل. الأمر الأساسي لكل حساب بهذا الشكل:
- imapsync مع تحديد host1 وuser1 وpassword1 للمصدر، وhost2 وuser2 وpassword2 للوجهة.
- أضف --ssl1 و--ssl2 لفرض الاتصال المشفّر على الطرفين.
- أضف --automap لمطابقة أسماء المجلدات الخاصة تلقائياً بين المصدر والوجهة.
- أضف --dry في تشغيلة تجريبية أولى تعرض ما سيُنقل دون نقل فعلي، للتأكد من صحة بيانات الدخول والمجلدات.
بعد اكتمال المزامنة الأولى، لا تبدّل MX بعد. أعد تشغيل نفس الأمر بالضبط قبيل التبديل مباشرة، فينفّذ imapsync الفرق التزايدي وينقل فقط الرسائل الجديدة التي وصلت خلال ساعات المزامنة الأولى. هذه التشغيلة سريعة جداً لأن معظم البيانات موجودة أصلاً في الوجهة، وهنا يتحقق مبدأ صفر فقدان: كل رسالة وصلت أثناء النقل تُلتقط في هذه الجولة.
موازاة الحسابات لتسريع النقل
لا تنقل الحسابات واحداً تلو الآخر إن كان لديك عشرات. شغّل عدة عمليات imapsync بالتوازي (من ثلاثة إلى خمسة معاً عادة) فتختصر المدة كثيراً، مع مراقبة ألا تتجاوز حدود المزوّد المصدر. الخادم السحابي عندنا بأنوية كافية يتحمّل هذه الموازاة بسهولة، وزمن الاستجابة نحو 8ms من الرياض يقصّر زمن كل تبادل أوامر مع أي حساب على السيرفر الجديد.
الخطوة 4: التبديل والتحقق
بعد الفرق التزايدي، بدّل سجل MX ليشير إلى السيرفر الجديد. لأن TTL خمس دقائق، ينتشر التغيير سريعاً ويبدأ البريد الجديد بالوصول للوجهة. اترك السيرفر القديم يعمل بضعة أيام إضافية كشبكة أمان، وشغّل جولة imapsync أخيرة بعد التبديل بيوم لالتقاط أي رسالة تأخّرت على السيرفر القديم بسبب مرسل يحتفظ بسجل قديم.
التحقق هو ما يمنحك الثقة قبل إغلاق الحساب القديم. لكل حساب، طابق ثلاثة أرقام بين المصدر والوجهة:
- عدد الرسائل الكلي في كل مجلد رئيسي (الوارد، المرسل، الأرشيف).
- الحجم الإجمالي للصندوق، مع تسامح بسيط لاختلاف طريقة حساب الحجم بين الخادمين.
- وجود آخر رسالة تاريخاً في كل مجلد، تأكيداً أن الفرق التزايدي أنجز عمله.
imapsync نفسه يطبع في نهاية كل تشغيلة ملخصاً بعدد الرسائل المنقولة والمتبقية، استخدمه كدليل أولي ثم أكّد يدوياً على عينة من الحسابات المهمة.
أخطاء شائعة وحلولها
أكثر مشكلة شيوعاً هي حدود المزوّد المصدر: بعض مزودي البريد يفرضون حداً على عدد الاتصالات المتزامنة أو على معدل الطلبات، فتظهر أخطاء انقطاع أثناء الموازاة. الحل تقليل عدد العمليات المتوازية وإضافة تأخير بسيط بين الطلبات. مشكلة ثانية هي مجلدات بأسماء خاصة أو رموز غير قياسية، ويحلّها خيار --automap ومعه --folderrec عند الحاجة. مشكلة ثالثة هي انقطاع في المنتصف، وحلّها ببساطة إعادة تشغيل الأمر لأن imapsync تزايدي ويكمل من حيث توقف دون تكرار. تأكد أيضاً أن حسابات الوجهة أُنشئت مسبقاً على السيرفر الجديد بالمساحة الكافية قبل بدء النقل.
سجلات DNS التي تُنسى بعد MX
تبديل سجل MX ينقل استقبال البريد، لكن نقل الإرسال السليم يحتاج تحديث ثلاثة سجلات أخرى غالباً ما تُنسى فتصل رسائلك صندوق الوارد لدى البعض وتُرفض عند آخرين. السجل الأول SPF الذي يحدد الخوادم المسموح لها بالإرسال باسم نطاقك، فعدّله ليشمل السيرفر الجديد وإلا وسمت بعض الجهات رسائلك كمزوّرة. السجل الثاني DKIM الذي يوقّع رسائلك توقيعاً رقمياً يثبت مصدرها، وله مفتاح خاص بكل سيرفر، فأنشئ مفتاح DKIM على السيرفر الجديد وأضف سجله في DNS قبل تحويل الإرسال. السجل الثالث DMARC الذي يخبر الخوادم المستقبلة كيف تتعامل مع رسالة تفشل في SPF أو DKIM، وتأكد أن سياسته تتوافق مع الإعداد الجديد.
القاعدة العملية أن تجهّز SPF وDKIM على السيرفر الجديد قبل التبديل، ثم تحدّثهما في DNS بالتوازي مع تبديل MX. بعد التبديل بيوم، أرسل رسالة تجريبية إلى حساب خارجي وافحص ترويسات الرسالة للتأكد أن SPF وDKIM يمرّان بنجاح، فهذا يضمن وصول بريدك المؤسسي صندوق الوارد لا صندوق المهملات. أهملْ هذه الخطوة ينقطع إرسالك عملياً رغم نجاح نقل الصناديق.
خطة تنفيذ مختصرة
ابدأ بجرد الصناديق وأرقامها المرجعية، وخفّض TTL لسجل MX إلى 300 ثانية قبل يومين. جهّز حسابات الوجهة على خادمك السحابي السعودي، وشغّل تشغيلة --dry للتأكد، ثم المزامنة الأولى الكاملة والبريد لا يزال على القديم. قبيل التبديل شغّل الفرق التزايدي، بدّل MX، ثم شغّل جولة أخيرة بعد يوم. طابق عدد الرسائل والأحجام قبل إغلاق القديم. إن كنت تنقل بريداً مؤسسياً كثيفاً، فاستضافته على خادم سعودي من صفحة الخادم السحابي أو على الاستضافة السحابية المُدارة تحفظ بريدك في صندوق الوارد لا في المجهول، وتفاصيل الباقات في صفحة الأسعار. الخلاصة: خطة أربع خطوات، تحقق بالأرقام، وصفر رسالة مفقودة.


