คำตอบสั้น ๆ: ย้ายอีเมลจาก Zimbra หรือเมลโฮสติ้งเข้า Microsoft 365 ด้วย IMAP Migration: ทดสอบการเชื่อมต่อ เตรียม CSV สร้าง Migration Batch ติดตามสถานะ และหยุดซิงก์
คู่มือนี้อธิบาย IMAP Migration ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
IMAP Migration คือเครื่องมือย้ายอีเมลที่มีมาใน Exchange Online โดยไม่ต้องซื้อโปรแกรมเพิ่ม ใช้ดึงอีเมลจากเมลเซิร์ฟเวอร์ใดก็ได้ที่เปิด IMAP เช่น Zimbra, เมลบนโฮสติ้ง cPanel, Plesk หรือ DirectAdmin และ Dovecot ที่ตั้งเอง เข้ากล่องจดหมาย Microsoft 365 ทีละชุด (Migration Batch) พร้อมซิงก์อีเมลใหม่ซ้ำทุก 24 ชั่วโมงจนกว่าจะสั่งหยุด
คู่มือนี้เหมาะกับผู้ดูแล Microsoft 365 ที่ต้องย้ายพนักงานหลายสิบถึงหลายร้อยคนจากระบบเดิม เมื่อทำครบ คุณจะทดสอบการเชื่อมต่อ สร้าง Migration endpoint เตรียมไฟล์ CSV สร้างและติดตาม Migration Batch เปลี่ยน MX และหยุดการซิงก์อย่างปลอดภัย ถ้าต้องย้ายข้ามผู้ให้บริการที่ไม่ใช่ Microsoft 365 หรือต้องการควบคุมทุกตัวเลือกเอง ดู คู่มือ imapsync แทน
ข้อจำกัดของ IMAP Migration ที่ต้องรู้ก่อนเริ่ม
- ย้ายเฉพาะอีเมลใน Inbox และโฟลเดอร์อีเมลอื่น ไม่ย้ายรายชื่อติดต่อ ปฏิทิน และงาน (Tasks)
- ย้ายได้สูงสุด 500,000 รายการต่อกล่องจดหมาย โดยย้ายจากอีเมลใหม่ไปเก่า
- อีเมลที่ใหญ่เกิน 35 MB จะไม่ถูกย้าย
- ไฟล์ CSV หนึ่งไฟล์มีได้ไม่เกิน 50,000 แถวและไม่เกิน 10 MB แต่ Microsoft แนะนำให้แบ่งเป็นหลายชุดเล็ก
- ถ้ากล่องปลายทางมีนโยบายเก็บถาวรหรือลบอัตโนมัติ (MRM/Archive policy) Microsoft แนะนำให้ปิดก่อนย้าย ไม่เช่นนั้นรายงานจะแสดงรายการที่หายไปทั้งที่ไม่ได้หายจริง
- ต้นทางเป็น Gmail หรือ Google Workspace ใช้ขั้นตอนเฉพาะของ Google ไม่ใช่ขั้นตอนในคู่มือนี้
ข้อจำกัดทั้งหมดอ้างอิงจากเอกสาร What you need to know about migrating your IMAP mailboxes ของ Microsoft
สิ่งที่ต้องเตรียม
- บทบาท Exchange Administrator หรือ Global Administrator
- โดเมนที่เพิ่มและยืนยันใน Microsoft 365 แล้ว และผู้ใช้ทุกคนในชุดนั้นถูกสร้างพร้อมไลเซนส์ที่มี Exchange Online แล้ว เพราะ IMAP Migration ต้องมีกล่องปลายทางอยู่ก่อน
- ชื่อเซิร์ฟเวอร์ IMAP ต้นทางแบบ FQDN เช่น
mail.example.comที่มีใบรับรอง TLS ถูกต้องบนพอร์ต 993 - รหัสผ่านของแต่ละกล่องต้นทาง หรือบัญชีผู้ดูแลที่เข้าทุกกล่องได้ (เช่น master user ของ Dovecot) ถ้าใช้รหัสผ่านผู้ใช้ ให้แจ้งผู้ใช้ห้ามเปลี่ยนรหัสผ่านระบบเดิมจนกว่าจะย้ายเสร็จ
- ไฟร์วอลล์ต้นทางยอมให้ช่วง IP ของ Exchange Online เข้าพอร์ต 993 และเพิ่มขีดจำกัดจำนวนการเชื่อมต่อต่อผู้ใช้หรือต่อ IP ชั่วคราว เช่น
mail_max_userip_connectionsของ Dovecot
ขั้นตอนที่ 1: ทดสอบการเชื่อมต่อเซิร์ฟเวอร์ IMAP
เชื่อมต่อ Exchange Online PowerShell แล้วทดสอบก่อนสร้างอะไรทั้งสิ้น ถ้าขั้นนี้ไม่ผ่าน IMAP Migration ทั้งชุดจะล้มเหลว
Connect-ExchangeOnline -UserPrincipalName [email protected]
Test-MigrationServerAvailability -IMAP -RemoteServer mail.example.com -Port 993 -Security Ssl |
Format-List Result,Message
ผลที่ต้องการคือ Result : Success ถ้าได้ Failed ให้อ่านข้อความใน Message สาเหตุที่พบบ่อยคือไฟร์วอลล์ปิดพอร์ต 993 ใบรับรองหมดอายุหรือไม่ตรงชื่อโฮสต์ และใช้ชื่อเซิร์ฟเวอร์ที่ไม่ใช่ชื่อในใบรับรอง
ขั้นตอนที่ 2: เตรียมไฟล์ CSV สำหรับ IMAP Migration
หัวคอลัมน์ต้องสะกดตรงทุกตัวและห้ามมีช่องว่าง: EmailAddress คือที่อยู่กล่อง Microsoft 365, UserName คือชื่อที่ใช้ล็อกอินระบบเดิม และ Password คือรหัสผ่านของชื่อนั้น บันทึกเป็น CSV แบบ UTF-8
EmailAddress,UserName,Password
[email protected],[email protected],Ex@mple-Temp-01
[email protected],[email protected],Ex@mple-Temp-02
[email protected],[email protected],Ex@mple-Temp-03
ถ้าต้นทางเป็น Dovecot ที่เปิด master user ไว้ ใช้รูปแบบ ผู้ใช้*บัญชีผู้ดูแล ในคอลัมน์ UserName และใส่รหัสผ่านของบัญชีผู้ดูแลทุกแถว วิธีนี้ไม่ต้องรู้หรือรีเซ็ตรหัสผ่านผู้ใช้ และการซิงก์ไม่พังเมื่อผู้ใช้เปลี่ยนรหัสผ่าน
EmailAddress,UserName,Password
[email protected],[email protected]*mailadmin,Ex@mple-Admin-Pass
ไฟล์ CSV ของ IMAP Migration มีรหัสผ่านทั้งหมด เก็บไว้ในเครื่องที่ปลอดภัยและลบทิ้งเมื่อย้ายเสร็จ แบ่งชุดตามแผนกหรือตามขนาดกล่อง ชุดละ 20–50 คนจะติดตามง่ายกว่าชุดเดียวทั้งบริษัท
ขั้นตอนที่ 3: สร้าง Migration endpoint สำหรับ IMAP Migration
- เปิด Exchange admin center ที่
https://admin.exchange.microsoft.comไปที่ Migration - คลิก Endpoints ที่มุมขวาบน แล้วคลิก Add endpoint
- เลือกประเภท IMAP ใส่ Migration endpoint name เช่น
IMAPEndpointและ IMAP server เป็นmail.example.com - ค่าอื่นของ IMAP Migration endpoint ปล่อยตามค่าเริ่มต้น (SSL พอร์ต 993) ซึ่งใช้ได้กับเซิร์ฟเวอร์ส่วนใหญ่ แล้วคลิก Create
ถ้าต้องการกำหนดจำนวนกล่องที่ย้ายพร้อมกัน ใช้ PowerShell ด้วยพารามิเตอร์ -MaxConcurrentMigrations และ -MaxConcurrentIncrementalSyncs ตั้งให้สอดคล้องกับกำลังของเซิร์ฟเวอร์ต้นทาง ถ้าต้นทางเป็นเครื่องเล็ก ตั้งค่าสูงเกินไปจะทำให้ผู้ใช้ที่ยังใช้ระบบเดิมช้าลง
New-MigrationEndpoint -IMAP -Name IMAPEndpoint -RemoteServer mail.example.com -Port 993 -Security Ssl `
-MaxConcurrentMigrations 10 -MaxConcurrentIncrementalSyncs 5
Get-MigrationEndpoint IMAPEndpoint | Format-List EndpointType,RemoteServer,Port,Security,Max*