أمامك مشروع ترحيل يثير القلق. عليك نقل البريد الإلكتروني من الخادم A إلى الخادم B من دون فقدان رسالة واحدة، أو إفساد بنية المجلدات، أو دفع رسوم "ترخيص ترحيل" قدرها $15/user إلى مزود خارجي لمجرد نقل بيانات تملكها بالفعل.
الأداة التي تبحث عنها هي imapsync. يوضح هذا الدليل بالتفصيل كيفية استخدامها من دون إحداث فوضى في صناديق بريد المستخدمين.
ما هي imapsync (وما الذي لا تفعله)
imapsync أداة تعمل من سطر الأوامر لمزامنة صناديق البريد بين خادمي IMAP. تعمل كوسيط يتصل بالخادمين في الوقت نفسه، ويقرأ الرسائل من المصدر، ثم يضيفها إلى الوجهة. وهي تتتبع حالة العملية، وتتعامل مع الانقطاعات، وتحافظ على بنية المجلدات والعلامات ومحتوى الرسائل.
ليست أداة نسخ احتياطي، وليست مرحل SMTP. ولا تتعامل مع تقويم Google أو جهات اتصال Outlook أو قواعد النقل في Exchange. إنها تستخدم IMAP ولا شيء غير IMAP. إذا كان الخادم المصدر محجوبا بجدار حماية أو غير متصل، فلن تتمكن imapsync من الوصول إليه. وانتهى الأمر.
ما جعلها معيارا شائعا في القطاع لنقل البيانات بين صناديق البريد هو طبقة الحفاظ على الحالة. فالترحيل الناجح لا يقتصر على نقل النص، بل يتطلب الحفاظ على ثلاثة أمور:
- المحتوى: نص الرسالة وفق RFC 822 والمرفقات وترميز MIME، أي كل ما يوجد داخل الرسالة.
- البيانات الوصفية: أي العلامات.
\Seen(مقروءة)، و\Answered(تم الرد عليها)، و\Flagged(مميزة). إذا لم تنتقل هذه العلامات، فسيظن كل مستخدم في اليوم الأول أن لديه 4,000 رسالة جديدة غير مقروءة. - البنية: أي التسلسل الهرمي للمجلدات. يجب أن يظهر
INBOX/Clients/ProjectAبالشكل نفسه على الخادم الجديد، لا أن يتحول إلى مجلد واحد اسمه حرفياINBOX.Clients.ProjectAوتفصل النقاط بين أجزائه.
تتعامل imapsync مع الأمور الثلاثة، إذا ضبطتها بشكل صحيح. وهذه هي المهمة الصعبة التي يشرحها هذا الدليل.
القيود الأساسية: لا تعرف الأداة تلقائيا حدود المعدل في Gmail أو قيود واجهة API لدى Microsoft. إذا شغلتها بأقصى سرعة، فقد يحظر عنوان IP الخاص بك. كذلك لا تدفع البيانات إلى الوجهة، بل عليك سحبها إلى المكان المطلوب. ولا تحذف شيئا من الوجهة افتراضيا، وهي ميزة أمان قد تسبب مشكلة أيضا إن لم تنتبه إليها. سنتناول ذلك في المرحلة 6.
لإلقاء نظرة أوسع على البروتوكول نفسه، راجع دليلنا حول إعداد البريد الإلكتروني على نطاقك.
المرحلة 1: الاستكشاف الدقيق، لا تتجاوز هذه الخطوة
يبدأ الهواة بالنسخ مباشرة، أما المحترفون فيراجعون البيئة أولا. إذا لم تعرف ما الذي تنقله، فسيفشل الترحيل، وغالبا ما سيحدث ذلك في الساعة 2 صباح الأحد حين يفوت أوان الإصلاح السريع.
1. حدد صناديق البريد الضخمة
لديك مستخدم بصندوق بريد حجمه 45GB. قد يكون المدير التنفيذي، أو الشخص الذي يدير الاسم المستعار sales@ منذ 2011. إذا حاولت ترحيله ضمن الدفعة نفسها التي تضم مستخدمي 500MB، فستتوقف الدفعة، وستبقى أمام طرفية جامدة من دون أن تعرف مقدار التقدم.
نفذ فحصا أوليا أولا:
imapsync \
--host1 imap.source.com --user1 user@source.com --passfile1 /secret/pass1 \
--host2 imap.dest.com --user2 user@dest.com --passfile2 /secret/pass2 \
--dry --justfoldersizes
يعرض هذا الأمر تفاصيل الحجم لكل مجلد من دون المساس بأي رسالة. يحتاج أي صندوق بريد يتجاوز 10GB إلى معالجة مخصصة، تشمل مهل انتظار أطول ونافذة تشغيل خاصة ومتابعة كاملة منك.
2. مشكلة البيانات المنسية
لدى كل شركة حسابات خاملة. منها حسابات موظفين سابقين ما زالت رسائلهم تحول إلى مكان ما، و"حسابات خدمة" ليست في الواقع سوى صناديق مشتركة لطابعة أو لتكامل قديم مع نظام CRM. إذا أغفلت هذه الحسابات في الجرد، فستظل بياناتها عالقة عند تحويل DNS.
قارن قائمة مستخدمي المصدر بالمستخدمين النشطين فعليا. إذا كان bob@company.com قد غادر قبل ثلاثة أعوام، فقرر الآن: هل ترحل صندوقه أم تحفظه في ملف تصدير EML؟ إذا لم تقرر قبل التحويل، فستضطر إلى اتخاذ القرار تحت الضغط في أسوأ وقت ممكن. راجع دليل إدارة بريد العملاء للاطلاع على نموذج كامل لجرد ما قبل الترحيل.
3. عدد العناصر هو الحقيقة
لا تثق أبدا بالحجم بوحدة غيغابايت وحدها. قد يبلغ الخادم المصدر A أن حجم صندوق البريد 10GB، بينما يبلغ الخادم الوجهة B أن البيانات نفسها تماما تساوي 11GB. هذا ليس خطأ، إذ تحسب الخوادم مساحة التخزين بطرق مختلفة. يحتسب Exchange مجلد Recoverable Items المعروف باسم "Dumpster"، بينما يزيل Gmail تكرار الرسائل عبر التصنيفات.
المقياس المهم هو عدد العناصر. إذا كان المصدر يحتوي على 14,200 رسالة والوجهة تحتوي على 14,200 رسالة، فقد انتهيت. اختلاف الحجم بالبايت بنسبة تقل عن 10% طبيعي ومتوقع. أما إذا تجاوز 10%، فتحقق من السبب قبل اعتماد النتيجة.
المرحلة 2: سير عمل الترحيل الآمن
أكبر خطأ في أي ترحيل هو نهج النقل الشامل دفعة واحدة، أي نقل كل شيء ليلة الجمعة وانتظار اكتماله صباح الاثنين. إذا كان لديك 50GB من البريد مع تقييد السرعة عند 500KB/s، فلن تنجح الحسابات. ستتوقف الخدمة يوم الاثنين، وستشرح للمدير التنفيذي سبب فراغ صندوق الوارد.
النهج المهني هو الترحيل على مراحل. تنجز القسم الأكبر بينما يستمر المستخدمون على النظام القديم، ثم تنفذ مزامنة نهائية صغيرة للفروقات عند التحويل.
الخطوة 1: التشغيل التجريبي
قبل نقل أي بايت، تأكد من إمكانية الاتصال. استخدم --dry مع --justfolders. تحاكي هذه الطريقة التنفيذ وتعرض بنية المجلدات من دون نسخ أي شيء.
imapsync \
--host1 imap.gmail.com --user1 user@source.com --passfile1 /secret/pass1 \
--host2 imap.trekmail.net --user2 user@dest.com --passfile2 /secret/pass2 \
--dry --justfolders
تحقق من أمرين: هل نجحت المصادقة، وكيف تبدو أسماء المجلدات؟ إذا وجدت [Gmail]/Sent Mail في المصدر، فعليك ربطه بمجلد Sent Items في الوجهة. لا تنتظر حتى التحويل الفعلي لاكتشاف ذلك.
الخطوة 2: المزامنة الرئيسية (الترحيل المسبق)
نفذها قبل التحويل بمدة 1 إلى 2 أسبوع بينما لا يزال المستخدمون يعملون على النظام القديم. الهدف هو إخراج 90 إلى 95% من البيانات من المسار الحرج.
imapsync \
--host1 imap.source.com --user1 user@source.com --passfile1 /secret/pass1 \
--host2 imap.dest.com --user2 user@dest.com --passfile2 /secret/pass2 \
--usecache --skipsize --maxsize 25000000
--usecache خيار لا غنى عنه. فهو يحفظ حالة الترحيل محليا. وتقارن كل عملية تشغيل لاحقة البيانات بذاكرة التخزين المؤقت هذه وتعالج التغييرات فقط، فلا تعيد فحص كل رسالة من البداية. من دونه، تصبح كل عملية تشغيل فحصا كاملا.
يتجاوز --maxsize 25000000 الرسائل التي يزيد حجمها على 25MB في الجولة الأولى. تتسبب المرفقات الكبيرة في معظم حالات انتهاء المهلة وانقطاع الاتصال. ويمكنك نقلها في جولة مخصصة بمهل انتظار أطول.
الخطوة 3: مزامنة الفروقات
شغل الأداة مجددا قبل التحويل ببضعة أيام. تقرأ imapsync ذاكرة التخزين المؤقت، وترى أن 10,000 رسالة موجودة بالفعل في الوجهة فتتجاوزها، ثم تنسخ فقط 50 إلى 100 رسالة جديدة وصلت منذ المزامنة الرئيسية. يجب أن ينتهي هذا التشغيل خلال دقائق لا ساعات.
الخطوة 4: التحويل
هذه هي اللحظة الحاسمة. نفذ الخطوات بالترتيب:
- اخفض قيمة TTL في DNS: قبل التحويل بمدة 48 ساعة، اضبط TTL لسجل MX على 300 ثانية. إذا انتظرت حتى اللحظة الأخيرة، فقد تحتفظ بعض المحللات بسجل MX القديم في الذاكرة المؤقتة مدة تصل إلى 24 ساعة، وعندها سيصل البريد إلى الخادم القديم بعد إتمام التحويل.
- بدل سجلات MX: وجهها إلى المضيف الجديد.
- انتظر 60 دقيقة حتى يستقر الانتشار لدى المحللات الرئيسية.
- نفذ مزامنة الفروقات النهائية: تلتقط جولة أخيرة من imapsync أي رسائل وصلت إلى الخادم القديم أثناء نافذة الانتشار.
للحصول على شرح تفصيلي لنافذة DNS وما ينبغي مراقبته أثناء الانتشار، راجع دليلنا حول إعداد البريد الإلكتروني على نطاقك.
المرحلة 3: العلامات والمجلدات وفخ مجلد الرسائل المرسلة
تستخدم خوادم IMAP أساليب مختلفة. إذا لم توفق بينها، فسيجد المستخدمون بنية صندوق بريد معطوبة، وسيحملونك المسؤولية عن حق.
مشكلة الفاصل
هذا أكثر الأعطال التقنية شيوعا، ومع ذلك لا يتحدث عنه أحد قبل أن يواجهه.
تستخدم خوادم IMAP المختلفة محارف مختلفة للفصل بين مستويات بنية المجلدات:
- يستخدم Dovecot عادة نقطة:
INBOX.Clients.ProjectA - يستخدم Exchange/Outlook شرطة مائلة:
INBOX/Clients/ProjectA - لا تستخدم بعض الخوادم فاصلا إطلاقا، وتعتمد على أمر IMAP المسمى
NAMESPACE
إذا رحلت البيانات من دون تحقق، فقد تنشئ imapsync في الوجهة مجلدا اسمه حرفيا INBOX.Clients.ProjectA. سيكون مجلدا واحدا مسطحا بنقاط في اسمه، لا بنية متداخلة من ثلاثة مستويات. وستبدو بنية مجلدات كل مستخدم وكأنها انهارت.
الحل هو --regextrans2، إذ يعيد كتابة مسارات المجلدات أثناء التشغيل باستخدام التعبيرات النمطية. اختبر دائما إنشاء المجلدات باستخدام --dry على حساب تجريبي واحد قبل تشغيل دفعة من 100 مستخدم.
فوضى العناصر المرسلة
يسمي كل خادم مجلد الرسائل المرسلة باسم مختلف. وهذا ليس إزعاجا بسيطا، بل مشكلة كبيرة في تجربة المستخدم إذا تجاهلتها.
| منصة البريد الإلكتروني | اسم مجلد الرسائل المرسلة |
|---|---|
| Gmail / Google Workspace | [Gmail]/Sent Mail |
| Outlook / Exchange | Sent Items |
| cPanel / Courier | Sent |
| الخوادم الألمانية | Gesendete Elemente |
| الخوادم الإسبانية | Enviados |
إذا لم تربط هذه الأسماء، فسينتهي المستخدم بمجلدين للرسائل المرسلة: مجلد Sent Items النشط، ومجلد شبحي جديد اسمه Sent Mail ويحتوي على السجل الكامل. سيلاحظ المستخدم ذلك ولن يكون راضيا.
اربطها بوضوح:
--regextrans2 's/^\[Gmail\]\/Sent Mail/Sent Items/'
يعني هذا الأمر: "إذا بدأ اسم مجلد المصدر بـ[Gmail]/Sent Mail، فأعد تسميته إلى Sent Items في الوجهة." نفذ خريطة المجلدات كاملة باستخدام --dry أولا، للتأكد من تطبيق كل قاعدة بشكل صحيح قبل اعتمادها.
فخ All Mail في Gmail
لدى Gmail مجلد اسمه [Gmail]/All Mail. يحتوي على نسخة من كل رسالة مهما كان تصنيفها. إنه العرض الشامل الداخلي في Gmail، لكنه يظهر كمجلد IMAP.
إذا رحلت All Mail وInbox وSent Mail، فستكرر كل رسالة مرتين أو ثلاثا في الوجهة. وسيتحول صندوق بريد بحجم 10GB إلى 30GB، وستظهر كل رسالة أكثر من مرة. إنها كارثة.
استبعده دائما:
--exclude "All Mail"
استبعد أيضا [Gmail]/Spam و[Gmail]/Trash ما لم يكن لديك سبب محدد لنقلهما. لا أحد يريد ترحيل الرسائل المزعجة القديمة.
المرحلة 4: ضبط الأداء وتقييد المعدل
لا يمكنك إغراق Google أو Microsoft بالبيانات. تتعامل بنيتهما التحتية مع اتصال IMAP كثيف تماما كما تتعامل مع هجوم حجب الخدمة، لأنهما يبدوان متشابهين من منظورها.
عقوبة تجاوز الحد
إذا تجاوزت حدود المعدل، التي تبلغ عادة نحو 1 رسالة في الثانية أو 500MB في الساعة لدى Gmail، فسيبدأ الخادم بإرجاع HTTP 429 أو NO [OVERQUOTA] أو أخطاء BAD فحسب. وإذا واصلت الضغط، فسيقفل الحساب مدة 24 ساعة. هذا اتصال بالدعم لا تريد إجراءه.
خيارات الضبط
--maxmessagespersecond 1 # Hard speed limit: 1 email per second
--maxbytespersecond 500000 # Bandwidth cap: 500KB/s
--timeout 120 # Network timeout in seconds (default is often too short for big attachments)
--reconnectretry1 3 # Retry on source connection drops
--reconnectretry2 3 # Retry on destination connection drops
تبدو سرعة 1 رسالة في الثانية بطيئة للغاية، وهي كذلك بالفعل. لكنها ثابتة، والعمل الثابت يكتمل. أما التشغيل المفرط الذي يتعرض للحظر بعد 3 ساعات، فلن يكتمل.
ملاحظة لمزودي الخدمات المدارة: إذا كنت تنفذ عمليات ترحيل متوازية لعدة عملاء، فلا تشغلها بالتزامن على الخادم المصدر نفسه. وزع أوقات البدء. كل مسار متوازٍ يحتاج إلى حصة مستقلة من الحد.
إذا كنت ترحل إلى TrekMail، فإن خدمة استيعاب IMAP لدينا تتعامل جيدا مع الاتصالات الكثيفة المتزامنة. يمكنك زيادة السرعة على جانب الوجهة أكثر مما تستطيع على جانب المصدر لدى Google أو Microsoft.
المرحلة 5: المصادقة، عقبة المصادقة الحديثة
انتهى زمن وضع password123 في ملف نصي مكشوف. أوقفت Google وMicrosoft استخدام Basic Auth مع IMAP. إذا جربت بيانات تسجيل الدخول المعتادة، فستظهر مشكلة مصادقة، وقد تقضي ساعة كاملة في محاولة معرفة الخطأ.
كلمات مرور التطبيقات (مسار الشركات الصغيرة والمتوسطة)
في معظم عمليات ترحيل النطاق الواحد، تكون كلمات مرور التطبيقات أسرع خيار. وهي سلاسل من 16 حرفا تتجاوز 2FA وتعمل مع عملاء IMAP القدامى:
- سجل الدخول إلى الحساب المصدر (Gmail أو Workspace أو غيرهما)
- فعل المصادقة الثنائية (2-Factor Authentication) إذا لم تكن مفعلة (وهي مطلوبة لإنشاء كلمات مرور التطبيقات)
- انتقل إلى إعدادات الأمان → كلمات مرور التطبيقات
- أنشئ كلمة مرور لخيار "Mail" على "Other device"
- استخدم تلك السلسلة ككلمة مرور في خيار imapsync المسمى
--passfile
احفظها في ملف بأذونات chmod 600، لا في سطر الأوامر. ترك بيانات الاعتماد في سجل Bash مشكلة تنتظر وقوعها.
OAuth2 (مسار مزودي الخدمات المدارة والمؤسسات)
إذا كنت مزود خدمات مدارة يرحل 500 مستخدم، فلا يمكنك إنشاء 500 كلمة مرور تطبيق يدويا. تحتاج إلى OAuth2. هذا المسار أعقد، لكنه الخيار الواقعي الوحيد بهذا الحجم:
- سجل تطبيقا في مستأجر المصدر (Azure AD لدى Microsoft، وGoogle Cloud Console لدى Google)
- امنحه وصولا كاملا إلى صناديق البريد في المستأجر (يتطلب موافقة Global Admin)
- أنشئ Refresh Token لكل مستخدم أو استخدم انتحال المستخدم عبر حساب خدمة
- مرر الرمز إلى imapsync باستخدام
--oauthaccesstoken1
إذا أخطأت في ضبط أذونات التطبيق في Azure AD أو GCP، فإما أن يرفض الوصول إلى كل صندوق بريد، أو الأسوأ أن تمنح عن غير قصد أذونات أوسع من المطلوب. اقرأ نطاقات الأذونات بعناية قبل النقر على "Grant admin consent".
لرؤية عملية الترحيل على نطاق واسع بصورة عملية، راجع دليلنا حول إدارة بريد العملاء.
المرحلة 6: حالات الفشل الشائعة والاسترداد
حتى الخطة المثالية تواجه مشكلات. إليك كيفية فهم ما حدث وإصلاحه من دون البدء من جديد.
1. مشكلة UIDVALIDITY (أسوأ سيناريو)
لكل مجلد IMAP معرف فريد يسمى UIDVALIDITY. تستخدمه imapsync لتتبع الرسائل التي تم نسخها. إذا حذف مجلد على الخادم المصدر ثم أعيد إنشاؤه، أو تلف فهرس الخادم وأعيد بناؤه، فسيتغير هذا المعرف.
العرض: ترى imapsync قيمة UIDVALIDITY جديدة، فتفترض أنه مجلد جديد بالكامل وتعيد تنزيل كل شيء. وهكذا تحصل على نسخة مكررة من كل رسالة في ذلك المجلد. وعلى نطاق واسع، يعني ذلك آلاف التكرارات في مئات صناديق البريد.
الحل: احذف ملفات ذاكرة التخزين المؤقت المحلية من الدليل المؤقت، ثم أعد التشغيل باستخدام --useheader:
--useheader
يجبر ذلك imapsync على مقارنة ترويسة Message-ID لكل رسالة، وهي ثابتة وفريدة، بدلا من الاعتماد على UID للمجلد. هذه الطريقة أبطأ، لكنها تساعد على تجنب التكرار. استخدمها عند الاشتباه في تعديل فهرس الخادم المصدر.
2. الرسائل التالفة والرسائل ذات الحجم الصفري
تتراكم في الخوادم القديمة رسائل "شبحية": ترويسات بلا نص، أو ملفات حجمها 0 بايت تماما. تنتج عادة من استيراد فاشل أو تعطل أثناء التسليم أو خادم قديم أجلت صيانته سنوات.
العرض: تحاول imapsync جلب رسالة، فيتوقف الخادم مدة 120 ثانية ثم يقطع الاتصال. ويتكرر ذلك إلى ما لا نهاية مع الرسالة نفسها.
الحل:
--minbytes 10
يطلب ذلك من imapsync تجاوز أي رسالة يقل حجمها عن 10 بايت. من المستبعد أن يقل حجم بريد عادي عن 10 بايت. إنه فعليا مرشح لتجاوز الملفات الفارغة، ويناسب معظم عمليات الترحيل.
3. مشكلة عودة الرسائل المحذوفة
نفذت المزامنة الرئيسية يوم الاثنين. وفي الثلاثاء حذف المستخدم 50 رسالة من المصدر. وفي الأربعاء نفذت مزامنة الفروقات.
افتراضيا، تضيف imapsync البريد فقط، ولا تحذف من الوجهة ما حذف من المصدر. وهذا مقصود وصحيح في معظم الحالات. لكنه يعني أن الرسائل المحذوفة وعددها 50 ستظهر مجددا في صندوق البريد الجديد. وسيبلغ المستخدمون عنها بوصفها "رسائل شبحية" أو "رسائل حذفتها ثم عادت".
الحل هو --delete2، لكن استخدمه بحذر شديد:
--delete2
يطلب هذا الخيار من imapsync حذف الرسالة من الوجهة إذا لم تكن موجودة في المصدر.
لا تستخدمه إلا في مرحلة الترحيل المسبق، قبل تحويل MX. إذا شغلته بعد التحويل، فستحذف الرسائل الجديدة التي وصلت إلى الوجهة، لأن MX يشير إليها بالفعل، فهي غير موجودة في المصدر القديم. ستفقد بريدا. لا تستخدم --delete2 بعد التحويل.
4. انقطاع الاتصال مع المرفقات الكبيرة
قد يتسبب مرفق PDF بحجم 40MB في توقف اتصالات IMAP ذات المهلة القصيرة. يرسل الخادم الرسالة، ثم تحدث مشكلة عابرة في الشبكة وينقطع الاتصال عند 95%، فتسجل imapsync خطأ وتتابع، وتترك رسالة غير مكتملة في الوجهة.
الحل: ارفع قيمة --timeout إلى 300 ثانية في جولات المرفقات الكبيرة. وفكر في استخدام --maxsize 25000000 لتجاوزها أثناء المزامنة الرئيسية، ثم نفذ جولة مخصصة للمرفقات الكبيرة مع قيود سرعة أكثر مرونة ومهل أطول.
التحقق: كيف تثبت نجاح العملية
انتهى البرنامج النصي، وتقول الطرفية إن العملية اكتملت. لكن كيف تعرف أن رسائل المدير التنفيذي لم تختف في مسار مهمل؟
1. اقرأ ملخص التنفيذ
تعرض imapsync ملخصا في نهاية كل تشغيل. والأرقام الثلاثة المهمة هي:
- Transferred: يجب أن تكون القيمة 0 في آخر مزامنة للفروقات. إذا لم تكن صفرا، فما زالت هناك رسائل لم تصل.
- Skipped: يجب أن تطابق إجمالي العدد في المصدر أو تتجاوزه. وهذه رسائل موجودة بالفعل في الوجهة.
- Errors: يجب أن تكون القيمة 0. أي عدد أخطاء غير صفري يحتاج إلى تحقيق قبل إعلان اكتمال العمل.
2. الفحص بالعينة
سجل الدخول إلى صندوق البريد الجديد باستخدام عميل IMAP جديد، لا عميلا يملك مخزنا محليا مؤقتا، لأن ذلك يبطل الغرض من الفحص. تحقق مما يلي:
- العناصر المرسلة: هل توجد رسائل الأعوام السابقة في مواضعها الصحيحة؟
- مجلد فرعي عميق التداخل: هل يبدو التسلسل الهرمي صحيحا؟
- أحدث رسالة: هل هي نفسها التي تظهر في المصدر؟
- رسالة مميزة: هل انتقلت سمة
\Flagged؟
3. البحث الاستقصائي
يبلغ مستخدم عن فقدان رسالة. قبل أن تقول "لا بد أنها ضاعت"، تحقق من السجل:
grep -i "bob@sender.com" /var/log/imapsync/user@source.com.log
يسجل السجل مصير كل رسالة: Transferred أو Skipped (موجودة بالفعل في الوجهة) أو Error مع رمز الخطأ المحدد. إذا كانت النتيجة Error، فستعرف بدقة الرسالة والمجلد ورمز الخطأ الذي تسبب في المشكلة. هذه نقطة بدء الاسترداد، لا التخمين.
4. تدقيق عدد العناصر
لإجراء فحص منطقي أخير، استعلم من الخادمين مباشرة:
# On source (example for Dovecot)
doveadm mailbox status -u user@source.com messages '*'
# Or use imapsync's own count
imapsync ... --dry --justfoldersizes 2>&1 | grep "Messages"
قارن عدد العناصر في المصدر بعددها في الوجهة. يجب ألا يتجاوز الفرق 1 إلى 2%، بعد احتساب استبعاد مجلدات الرسائل المزعجة وإزالة تكرار All Mail في Gmail. إذا زاد الفرق، فابحث في سجل الأخطاء قبل اعتماد النتيجة.
البديل: الاستغناء عن الطرفية
كتبنا هذا الدليل لأننا نؤمن بالشفافية. imapsync هي الأداة المناسبة للمشغلين الذين يريدون تحكما كاملا ولا يمانعون التعامل مع تبعيات Perl وتسجيلات تطبيقات OAuth2 والتحليل الدقيق للسجلات.
لكن بالنسبة إلى كثير من المشغلين، سواء كنت مؤسسا يرحل نطاقه الأول أو وكالة ترحل 200 حساب لعملائها، فإن الوقت اللازم لضبط كل ذلك يفوق ما توفره من تكاليف البرامج.
| النهج | الأنسب له | المقابل |
|---|---|---|
| imapsync (تنفيذ ذاتي) | مسؤولو الأنظمة، وحالات التحكم الكامل، وخوادم المصدر غير المعتادة | الوقت والخبرة مقابل عدم دفع تكلفة للأداة |
| الترحيل المدمج في TrekMail | المؤسسون والوكالات والمشغلون الذين يقدرون وقتهم | التنازل عن التحكم الدقيق في العلامات مقابل السرعة والبساطة |
| مزودو الترحيل الخارجيون | المؤسسات التي لديها متطلبات امتثال وميزانية | المال (غالبا $15 إلى $25/user) مقابل ضمانات SLA |
تعمل أداة الترحيل المدمجة في TrekMail على الخادم. فلا حاجة إلى سحب المجلدات في Outlook مدة ثلاث ساعات، ولا إلى معاناة تبعيات Perl. توجه الأداة إلى المصدر (Gmail أو cPanel أو أي خادم IMAP قياسي)، وتدخل بيانات الاعتماد، ويتولى الخادم عملية النقل. ويمكنك متابعة التقدم في لوحة التحكم.
يختلف نموذج التسعير أيضا عما اعتدت عليه على الأرجح. لا توجد رسوم لكل مستخدم. تبدأ الخطط ذات السعر الثابت من $3.50 شهريا وتشمل حتى 100 مستخدم ضمن 50 نطاقا، مع مساحة تخزين مشتركة بينهم جميعا. لذلك لن يضطرك مسؤول تنفيذي واحد لديه 40GB من المرفقات إلى ترقية الجميع، لأن التخزين مشترك على مستوى الحساب.
لمقارنة ما تتضمنه كل خطة، راجع أسعار TrekMail. وللحصول على خطوات استخدام أداة الترحيل بالتحديد، راجع دليل بدء عملية ترحيل في وثائقنا.
سواء كتبت البرنامج النصي بنفسك باستخدام imapsync أو استخدمت منصتنا، فالهدف واحد: نقل البريد من دون فقدان البيانات أو إثارة الفوضى أو دفع رسوم على كل حساب.
إذا كنت مستعدا لإيقاف الرسوم لكل مستخدم وتريد أن نتولى الترحيل، فجرب TrekMail مجانا. تحصل على فترة تجريبية مدتها 14 يوما من دون الحاجة إلى بطاقة.