تطوير الويب

الانتقال من Google Workspace أو Microsoft 365 إلى Mailcow: درس 2026

5 دقائق للقراءة

📍 المقالة الرئيسية للمجموعة: Mailcow 2026: الدليل الكامل.

لديك 5-10 سنوات من البريد في Google Workspace أو Microsoft 365. الانتقال إلى Mailcow ذاتي الاستضافة دون فقدان رسالة، دون انقطاع خدمة. هذا الدرس يفصل الإجراء المُختبَر عند عدة شركات فرنكوفونية عبر imapsync، الأداة مفتوحة المصدر المرجعية. الهدف: استرداد التاريخ الكامل للبريد بأرشيفاته ومجلداته دون فقدان شيء.

المتطلبات

Mailcow في الإنتاج (راجع درس التثبيت). DNS مُصادَق عليه (SPF/DKIM/DMARC). صناديق Mailcow مُنشأة مكافئة لـ Google/365 (نفس العناوين). كلمات سر التطبيقات (App Password) Google أو MS. المستوى المتوقع: متقدم. الوقت المقدر: يوم تحضير + أيام حسب الحجم.

الخطوة 1 — تدقيق الحسابات المصدر

لكل صندوق للهجرة، احصل على المعلومات الأساسية. هذا التدقيق يتيح تخطيط الجهد وتجنب نسيان صناديق:

  • عنوان البريد الدقيق.
  • حجم البيانات (Google Settings → Storage، M365 OWA → Mailbox usage).
  • عدد المجلدات/labels.
  • الفلاتر والقواعد لإعادة الإنشاء يدوياً.

الخطوة 2 — توليد App Passwords

App Passwords ضرورية لأن imapsync يستخدم IMAP/SMTP الأساسي وليس OAuth الحديث. هذا يتطلب 2FA مفعَّل ثم توليد كلمة سر مخصصة لـ IMAP.

Google Workspace

  1. فعِّل 2FA على حساب Google.
  2. Account → Security → App passwords.
  3. Generate password « Mail » لكل حساب للهجرة.
  4. سجل password 16 حرفاً (قابل للاستخدام مرة واحدة فقط).

Microsoft 365

  1. فعِّل Modern Authentication + IMAP من جانب admin tenant.
  2. لكل user: security.microsoft.com → Additional security verification → App passwords.
  3. Generate.

الخطوة 3 — تثبيت imapsync

على VPS Mailcow أو محطة محلية:

apt install -y imapsync libio-socket-ssl-perl libio-tee-perl libfile-copy-recursive-perl libreadonly-perl libterm-readkey-perl libsys-meminfo-perl libdigest-md5-file-perl libdate-manip-perl libencode-imaputf7-perl libtest-mockobject-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl libio-compress-perl libregexp-common-perl libfile-tail-perl
imapsync --version  # يجب أن يعيد > 2.0

الخطوة 4 — اختبار على صندوق رائد

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

imapsync \
  --host1 imap.gmail.com --port1 993 --ssl1 \
  --user1 amadou.diop@old-entreprise.com \
  --password1 'APP-PASSWORD-GOOGLE' \
  --host2 mail.votre-entreprise.com --port2 993 --ssl2 \
  --user2 amadou.diop@votre-entreprise.com \
  --password2 'PASSWORD-MAILCOW' \
  --automap \
  --useheader 'Message-Id' \
  --skipsize \
  --dry  # وضع dry-run للاختبار

الإخراج يسرد البريد الذي سيُنسَخ. تحقق OK ثم أزل --dry للهجرة الحقيقية.

الخطوة 5 — إطلاق الهجرة الحقيقية

الأمر التالي يهاجر فعلاً. لـ 5 GB من الصندوق، احسب 1-2 ساعة على Hetzner. اللوغ يسجل كل عملية لتسهيل التشخيص في حالة المشكلة.

imapsync \
  --host1 imap.gmail.com --port1 993 --ssl1 \
  --user1 amadou.diop@old-entreprise.com \
  --password1 'APP-PASSWORD' \
  --host2 mail.votre-entreprise.com --port2 993 --ssl2 \
  --user2 amadou.diop@votre-entreprise.com \
  --password2 'PASSWORD-MAILCOW' \
  --automap \
  --useheader 'Message-Id' \
  --logfile /tmp/imapsync-amadou.log

الخطوة 6 — هجرة بالجملة عبر سكربت

لـ 25-50 صندوقاً، حلقة bash مع stagger للسماح بهجرة متوازية مع تجنب rate limit Google. الـ sleep 60 بين كل هجرة يتجنب الحظر بـ Google.

#!/bin/bash
while IFS=, read -r email_old pass_old email_new pass_new; do
  imapsync \
    --host1 imap.gmail.com --port1 993 --ssl1 \
    --user1 "$email_old" --password1 "$pass_old" \
    --host2 mail.votre-entreprise.com --port2 993 --ssl2 \
    --user2 "$email_new" --password2 "$pass_new" \
    --automap --useheader 'Message-Id' \
    --logfile "/tmp/imapsync-$(echo $email_new | cut -d@ -f1).log" &
  sleep 60
done < migration-list.csv
wait

الخطوة 7 — فترة بصل MX

استراتيجية دون انقطاع تستفيد من نظام MX priorities لـ DNS. كلما كان priority أصغر، كلما كان MX مفضلاً. هذا يسمح بتوجيه تدريجي للبريد:

  1. قبل: MX يشير إلى Google. كل البريد يصل إلى Google.
  2. أثناء: أضف MX ثانوي Mailcow priority 20 (Google priority 10).
  3. هجرة imapsync للتاريخ.
  4. التبديل: Google priority 20، Mailcow priority 10. البريد يصل إلى Mailcow.
  5. Imapsync تزايدي آخر 24 ساعة لاسترداد ما فات.
  6. عطِّل Google MX.

الخطوة 8 — التواصل مع المستخدمين

  • J-7: إعلان الهجرة المتوقعة.
  • J-3: إرسال credentials Mailcow + URL webmail SOGo + دليل تكوين الهاتف.
  • J: تبديل MX.
  • J+1: webinar 30 دقيقة troubleshooting.
  • J+7: استبيان رضا، تعديلات.

الخطوة 9 — تكوين عملاء mobile وdesktop

وزِّع الوثيقة:

  • iPhone Mail: Settings → Mail → Accounts → Add → Other. تكوين IMAP/SMTP يدوي.
  • Android Gmail app: Add Account → Other.
  • Outlook desktop: Account Settings → Add → IMAP. SMTP الصادر مع STARTTLS.
  • Apple Mail: Add Other Mail Account.

الخطوة 10 — إيقاف Google/M365

في J+30 (أمان):

  1. التحقق النهائي: لا بريد حديث على Google فقط.
  2. تصدير نهائي عبر Google Takeout للأرشيف (.mbox).
  3. إلغاء اشتراك Google Workspace.
  4. حذف بيانات Google: 30 يوماً بعد cancel.
  5. توثيق داخلي wiki: «الهجرة انتهت في DD/MM/YYYY».

الأخطاء الشائعة

الخطأ السبب الحل
imapsync rate limit Google طلبات كثيرة --noreleasecheck --tmpdir + sleeps
فشل المصادقة Google App Password إلزامي فعِّل 2FA + App Password
Labels Gmail vs folders Mailcow مفهوم مختلف imapsync --automap يُعيد التعيين
أحجام ضخمة timeout اتصال بطيء أطلق من VPS Hetzner مباشرة
تكرارات بعد resync Message-Id مُغيَّر --useheader 'Message-Id' إلزامي
تقويم غير مهاجر imapsync = بريد فقط تصدير ICS Google → استيراد SOGo

التكيف مع السياق المغاربي وغرب إفريقيا

ثلاث توضيحات. عرض النطاق. لـ 100 GB إجمالاً للهجرة، أطلق من VPS Hetzner مباشرة (gigabit) بدلاً من محطة محلية (4G). هذا يقلل الوقت من أيام إلى ساعات. ساعات بصل. هجرة ثقيلة 22h-5h بالتوقيت المحلي لعدم تشبع شبكة المكتب. التواصل الفريقي. webinar مباشر مع Q&A. فيديو مُسجَّل لـ replay. التوفيرات. 25 شخصاً Google Workspace = 3,600 USD/سنة. هجرة يوم واحد ROI فوري.

دروس الإخوة

الأسئلة المتكررة

imapsync مدفوع؟ مفتوح المصدر GPL. المؤلف يقدم دعماً مدفوعاً لكن الـ binary مجاني.

التقويم وجهات الاتصال؟ imapsync = بريد. تصدير Calendar ICS، contacts vCards.

كم وقت لـ 100 GB؟ 24-48 ساعة حسب bandwidth. أطلق بالتوازي 5-10 صناديق.

فلاتر Gmail مهاجرة؟ لا. أعد إنشاء يدوياً في SOGo أو مع فلاتر Sieve.

Sent items وdrafts؟ مهاجرة. imapsync ينسخ كل المجلدات.

للاستزادة

مقالات ذات صلة

مشاركة