IMAP Migration: ย้ายกล่องจดหมายเข้า Microsoft 365 ทีละชุด

ย้ายอีเมลจาก Zimbra หรือเมลโฮสติ้งเข้า Microsoft 365 ด้วย IMAP Migration: ทดสอบการเชื่อมต่อ เตรียม CSV สร้าง Migration Batch ติดตามสถานะ และหยุดซิงก์

โดย ทีมงาน THAI DATA CLOUD อ่าน 13 นาที

แชร์FacebookXLINELinkedIn
IMAP Migration — IMAP Migration: ย้ายกล่องจดหมายเข้า Microsoft 365 ทีละชุด
IMAP Migration: ย้ายกล่องจดหมายเข้า Microsoft 365 ทีละชุด

คำตอบสั้น ๆ: ย้ายอีเมลจาก 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
ลำดับขั้น IMAP Migration ตั้งแต่สร้างผู้ใช้ สร้าง Migration endpoint นำเข้า CSV เริ่ม Migration Batch เปลี่ยน MX จนถึงลบชุด
ชุดจะซิงก์อีเมลใหม่ทุก 24 ชั่วโมงจนกว่าจะลบ จึงเปลี่ยน MX ได้โดยไม่ต้องรีบ

ขั้นตอนที่ 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

  1. เปิด Exchange admin center ที่ https://admin.exchange.microsoft.com ไปที่ Migration
  2. คลิก Endpoints ที่มุมขวาบน แล้วคลิก Add endpoint
  3. เลือกประเภท IMAP ใส่ Migration endpoint name เช่น IMAPEndpoint และ IMAP server เป็น mail.example.com
  4. ค่าอื่นของ 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*
คำสั่ง PowerShell สำหรับ IMAP Migration ทดสอบเซิร์ฟเวอร์ต้นทาง สร้าง Migration endpoint และเริ่ม Migration Batch จากไฟล์ CSV
ถ้า Test-MigrationServerAvailability ไม่ได้ Success อย่าสร้างชุด ให้แก้การเชื่อมต่อก่อน

ขั้นตอนที่ 4: สร้าง IMAP Migration Batch

  1. ไปที่ Migration คลิก Add migration batch ตั้งชื่อชุดแบบไม่มีช่องว่าง เช่น IMAP-Batch-Sales และเลือก Migrate to Exchange Online
  2. หน้า Select the migration type เลือก IMAP migration
  3. หน้า Prerequisites for IMAP migration ตรวจรายการแล้วคลิก Next
  4. หน้า Set a migration endpoint เลือก IMAPEndpoint
  5. หน้า Add user mailboxes คลิก Import CSV file แล้วเลือกไฟล์จากขั้นตอนที่ 2
  6. หน้า Select configuration settings ใช้ Migration filtering options ตัดโฟลเดอร์ที่ไม่ต้องย้าย เช่น Trash และ Junk
  7. หน้า Schedule batch migration เลือกผู้รับรายงานและให้เริ่มชุดอัตโนมัติ แล้วคลิก Save และ Done
หน้าจอจำลองตัวช่วย Add migration batch ใน Exchange admin center เลือกประเภท IMAP Migration และ Migration endpoint
ชื่อชุดห้ามมีช่องว่าง และควรบอกได้ว่าเป็นกลุ่มผู้ใช้ใด (ภาพจำลอง)

คำสั่ง PowerShell ที่สร้าง IMAP Migration Batch ได้ผลเหมือนกัน

New-MigrationBatch -Name IMAP-Batch-Sales -SourceEndpoint IMAPEndpoint `
  -CSVData ([System.IO.File]::ReadAllBytes("C:\Migration\sales.csv")) `
  -ExcludeFolders "Trash","Junk" -AutoStart

ขั้นตอนที่ 5: ติดตามสถานะ IMAP Migration และแก้กล่องที่ล้มเหลว

ในหน้า Migration คลิกชื่อชุด แล้วคลิก View details ใต้ Migration details เพื่อดูสถานะรายกล่อง สถานะ Syncing แปลว่ากำลังย้ายรอบแรก Synced แปลว่าย้ายรอบแรกเสร็จและจะซิงก์ซ้ำทุก 24 ชั่วโมง ส่วน Failed ต้องเปิดดูรายละเอียด

Get-MigrationBatch IMAP-Batch-Sales | Format-List
Get-MigrationUser -BatchId IMAP-Batch-Sales
Get-MigrationUserStatistics -Identity [email protected] -IncludeReport | Format-List

รายงานรายกล่องของ IMAP Migration บอกจำนวนรายการที่ย้ายและที่ถูกข้าม สาเหตุที่พบบ่อยของ Failed คือรหัสผ่านใน CSV ผิด ผู้ใช้เปลี่ยนรหัสผ่านต้นทาง และต้นทางจำกัดจำนวนการเชื่อมต่อ แก้สาเหตุแล้วสั่ง Start-MigrationBatch -Identity IMAP-Batch-Sales ซึ่งใน Exchange Online ใช้ลองใหม่เฉพาะผู้ใช้ที่ล้มเหลวในชุดได้ทุกเมื่อ

ขั้นตอนที่ 6: เปลี่ยน MX แล้วลบ Migration Batch

เมื่อ IMAP Migration ทุกชุดอยู่ในสถานะ Synced ให้เปลี่ยน MX ของโดเมนไป Microsoft 365 ตาม คู่มือตั้งระเบียน DNS สำหรับ Microsoft 365 และวางแผนวันเปลี่ยนตาม แผน MX Cutover ระหว่างนี้ IMAP Migration ยังซิงก์อีเมลที่ตกค้างในระบบเดิมให้ทุก 24 ชั่วโมง

รออย่างน้อย 72 ชั่วโมงหลังเปลี่ยน MX และตรวจว่าเวลาซิงก์ล่าสุดของชุดอยู่หลังเวลาที่เปลี่ยน MX แล้ว จึงลบชุดที่ Migration > เลือกชุด > Delete หรือใช้คำสั่ง Remove-MigrationBatch -Identity IMAP-Batch-Sales หลังลบแล้ว อีเมลที่ยังเข้าระบบเดิมจะไม่ถูกคัดลอกมาอีก

ขั้นตอนที่ 7: ย้ายข้อมูลที่ IMAP Migration ไม่ย้าย

  • รายชื่อติดต่อ: ส่งออกจากเว็บเมลเดิมเป็น CSV หรือ vCard แล้วนำเข้าตาม คู่มือ Import Contacts
  • ปฏิทิน: IMAP Migration ไม่แตะปฏิทินเลย ให้ส่งออกเป็นไฟล์ .ics แล้วนำเข้า Outlook ตรวจเขตเวลาให้เป็น (UTC+07:00) Bangkok, Hanoi, Jakarta ก่อนนำเข้า
  • กฎกล่องจดหมาย ลายเซ็น และการตอบกลับอัตโนมัติ: ตั้งใหม่ใน Outlook
  • อีเมลที่เกิน 35 MB: ให้เจ้าของบันทึกไฟล์แนบไว้ที่ OneDrive ก่อนปิดระบบเดิม
ตารางเปรียบเทียบข้อมูลที่ IMAP Migration ย้ายได้ เช่น อีเมลในโฟลเดอร์ กับข้อมูลที่ต้องย้ายเอง เช่น รายชื่อติดต่อและปฏิทิน
วางแผนย้ายรายชื่อติดต่อ ปฏิทิน และกฎกล่องจดหมายแยกตั้งแต่ต้น

ปัญหาที่พบบ่อยเกี่ยวกับ IMAP Migration

IMAP Migration ย้ายปฏิทินและรายชื่อติดต่อได้หรือไม่?

ไม่ได้ IMAP เป็นโปรโตคอลสำหรับอีเมลเท่านั้น ต้องส่งออกและนำเข้าเองตามขั้นตอนที่ 7 หรือใช้เครื่องมือย้ายข้อมูลแบบเสียเงินที่รองรับ CalDAV และ CardDAV

จำนวนอีเมลใน Microsoft 365 น้อยกว่าต้นทาง ทำไม?

ตรวจรายงานของกล่องนั้นว่ามีรายการถูกข้ามหรือไม่ สาเหตุหลักคืออีเมลเกิน 35 MB อีเมลที่เสียหายในต้นทาง โฟลเดอร์ที่ตัดออกด้วย filtering และกล่องที่เกิน 500,000 รายการ ซึ่งอีเมลเก่าที่สุดจะไม่ถูกย้าย

ผู้ใช้เปลี่ยนรหัสผ่านระบบเดิมระหว่างซิงก์ จะเกิดอะไรขึ้น?

การซิงก์ซ้ำของกล่องนั้นจะล้มเหลวเพราะรหัสผ่านใน CSV ไม่ตรง ทางแก้คือนำผู้ใช้นั้นออกจากชุดด้วย Remove-MigrationUser แล้วสร้างชุดใหม่สำหรับกล่องนั้นด้วยรหัสผ่านปัจจุบัน หรือใช้บัญชีผู้ดูแลแบบ master user ตั้งแต่แรกเพื่อเลี่ยงปัญหานี้

IMAP Migration รอบแรกใช้เวลานานแค่ไหน?

ขึ้นกับขนาดกล่อง ความเร็วของเซิร์ฟเวอร์ต้นทาง และจำนวนกล่องที่ย้ายพร้อมกัน Microsoft ไม่ได้รับประกันความเร็ว ทางที่ดีคือย้ายกลุ่มนำร่อง 2–3 กล่องก่อน จดเวลาที่ใช้ต่อ GB แล้วใช้ตัวเลขนั้นวางแผนชุดที่เหลือ

ถ้าต้องการให้ช่วยวางแผน IMAP Migration แบ่งชุด หรือย้ายรายชื่อติดต่อและปฏิทินให้ครบ ติดต่อทีมงาน THAI DATA CLOUD ได้ องค์กรที่ต้องการจัดหาไลเซนส์หรือให้ทีมงานดูแลระบบหลังย้ายดูรายละเอียดได้ที่ Microsoft 365

อ่านเพิ่มเติมเกี่ยวกับ IMAP Migration

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน