使用 PowerShell 以網際網路訊息存取通訊設定移轉至 Microsoft 365
本文適用於 Microsoft 365 企業版和 Office 365 企業版。
在部署 Microsoft 365 的過程中,您可以選擇將使用者信箱的內容從因特網郵件存取通訊協定 (IMAP) 電子郵件服務移轉至 Microsoft 365。 本文會引導您使用 Exchange Online PowerShell 來進行電子郵件 IMAP 移轉的工作。
注意事項
您也可以使用 Exchange 系統管理中心 來執行 IMAP 移轉。 請參閱 移轉您的 IMAP 信箱。
開始之前有哪些須知?
完成此工作的預估時間:2-5 分鐘來建立遷移批次。 啟動移轉批次之後,移轉所需的時間會依批次中的信箱數目、每個信箱的大小和可用的網路容量而有所不同。 如需影響將信箱移轉至 Microsoft 365 所需時間之其他因素的資訊,請參閱 移轉效能。
您必須已獲指派權限,才能執行此程序或這些程序。 若要查看您需要的許可權,請參閱 收件者許可權 一文中數據表中的「移轉」專案。
若要使用 Exchange Online PowerShell Cmdlet,您需要登入系統,並將 Cmdlet 匯入您的本機 Windows PowerShell 工作階段。 如需指示,請參閱連線到 Exchange Online PowerShell。
若需要移轉命令的完整清單,請參閱移動與移轉 Cmdlet。
下列限制適用於 IMAP 移轉:
僅能移轉使用者收件匣或其他郵件資料夾中的項目。 您無法移轉連絡人、行事曆項目或工作。
最多只能從使用者信箱移轉 500,000 個項目。
可移轉的郵件大小上限為 35 MB。
移轉步驟
步驟 1:準備進行 IMAP 移轉
如果您有 IMAP 組織的網域,請將其新增為 Microsoft 365 組織的可接受網域。 如果您想要為 Microsoft 365 信箱使用已擁有的相同網域,您必須先將它新增為 Microsoft 365 的可接受網域。 新增之後,您可以在 Microsoft 365 中建立使用者。 如需詳細資訊,請參閱驗證您的網域。
將每個使用者新增至 Microsoft 365,讓他們擁有信箱。 如需指示,請參閱將使用者新增至商務用 Microsoft 365。
取得 IMAP 伺服器的 FQDN。 您必須提供完整功能變數名稱 (FQDN) (也稱為 IMAP 伺服器的完整電腦名稱) ,您將在建立 IMAP 移轉端點時從該伺服器移轉信箱數據。 使用 IMAP 用戶端或 PING 命令,確認是否可以使用 FQDN,透過網際網路與 IMAP 伺服器通訊。
設定防火牆來允許 IMAP 連線。 您可能必須開啟主控 IMAP 伺服器之組織的防火牆中的通訊埠,以便允許移轉期間源自 Microsoft 資料中心的網路流量進入主控 IMAP 伺服器的組織。 如需 Microsoft 資料中心所使用的 IP 位址清單,請參閱 Office 365 URL 與 IP 位址範圍。
指派系統管理員帳戶權限來存取 IMAP 組織中的信箱。 如果您在 CSV 檔案中使用系統管理員認證,您所使用的帳戶必須具有能存取內部部署信箱的必要權限。 存取使用者信箱所需的權限是由特定的 IMAP 伺服器決定。
若要使用 Exchange Online PowerShell Cmdlet,您需要登入系統,並將 Cmdlet 匯入您的本機 Windows PowerShell 工作階段。 如需指示,請參閱連線到 Exchange Online PowerShell。
若需要移轉命令的完整清單,請參閱移動與移轉 Cmdlet。
確認您可以連線至 IMAP 伺服器。 在 Exchange Online PowerShell 中執行下列命令,測試 IMAP 伺服器的連線設定。
Test-MigrationServerAvailability -IMAP -RemoteServer <FQDN of IMAP server> -Port <143 or 993> -Security <None, Ssl, or Tls>
對於 Port 參數的值,通常是使用 143 來進行未加密或傳輸層安全性 (TLS) 連線,以及使用 993 來進行 SSL 連線。
步驟 2:建立 CSV 檔案供 IMAP 移轉批次使用
識別您想要在 IMAP 遷移批次中遷移其信箱的使用者群組。 CSV 檔案中的每一列包含連線至 IMAP 郵件系統中的信箱所需的資訊。
以下是供每個使用者使用的必要屬性。
EmailAddress 會指定使用者 Microsoft 365 信箱的用戶標識碼。
UserName 會指定帳戶的登入名稱,以用來存取 IMAP 伺服器上的信箱。
Password 會指定 UserName 欄中之帳戶的密碼。
以下是 CSV 檔案格式的範例。 在此範例中,會移轉三個信箱:
EmailAddress,UserName,Password
terrya@contoso.edu,terry.adams,1091990
annb@contoso.edu,ann.beebe,2111991
paulc@contoso.edu,paul.cannon,3281986
若是 UserName 屬性,除了使用者名稱,您還可以使用已指派必要權限的帳戶認證來存取 IMAP 伺服器上的信箱,以下是一些 IMAP 伺服器使用的特定格式:
Microsoft Exchange:
如果您要從 Microsoft Exchange 的 IMAP 實作中移轉電子郵件,請針對 CSV 檔案中的 UserName 屬性使用 Domain/Admin_UserName/User_UserName 格式。 假設您要從 Exchange 中移轉 Terry Adams、Ann Beebe 和 Paul Cannon 的電子郵件。 您具有郵件系統管理員帳戶,其使用者名稱為 mailadmin ,而密碼為 P@ssw0rd 。 以下是您 CSV 檔的外觀:
EmailAddress,UserName,Password
terrya@contoso.edu,contoso-students/mailadmin/terry.adams,P@ssw0rd
annb@contoso.edu,contoso-students/mailadmin/ann.beebe,P@ssw0rd
paulc@contoso.edu,contoso-students/mailadmin/paul.cannon,P@ssw0rd
Dovecot:
若為支援簡單驗證及安全性階層 (SASL) 的 IMAP 伺服器 (例如 Dovecot IMAP 伺服器),請使用 User_UserName*Admin_UserName 格式,其中星號 (*) 是可設定的分隔字元。 假設您要使用系統管理員認證 mailadmin 和 P@ssw0rd ,從 Dovecot IMAP 伺服器中移轉相同使用者的電子郵件。 以下是您 CSV 檔的外觀:
EmailAddress,UserName,Password
terrya@contoso.edu,terry.adams*mailadmin,P@ssw0rd
annb@contoso.edu,ann.beebe*mailadmin,P@ssw0rd
paulc@contoso.edu,paul.cannon*mailadmin,P@ssw0rd
Mirapoint:
如果您要從 Mirapoint Message Server 中移轉電子郵件,請針對系統管理員認證使用 #user@domain#Admin_UserName# 格式。 若要使用系統管理員認證 mailadmin 和 P@ssw0rd ,從 Mirapoint 中移轉電子郵件,您 CSV 檔的外觀如下:
EmailAddress,UserName,Password
terrya@contoso.edu,#terry.adams@contoso-students.edu#mailadmin#,P@ssw0rd
annb@contoso.edu,#ann.beebe@contoso-students.edu#mailadmin#,P@ssw0rd
paulc@contoso.edu,#paul.cannon@contoso-students.edu#mailadmin#,P@ssw0rd
Courier-IMAP:
某些來源電子郵件系統,例如 Courier IMAP,不支援使用信箱系統管理員認證將信箱移轉至 Microsoft 365。 相反地,您可以設定來源電子郵件系統來使用虛擬共用資料夾。 藉由使用虛擬共用資料夾,您可以使用信箱管理員認證來存取來源電子郵件系統上的使用者信箱。 如需如何設定適用於 Courier IMAP 的虛擬共用資料夾的詳細資訊,請參閱共用資料夾。
若要在來源電子郵件系統上設定虛擬共用資料夾之後移轉信箱,您必須在移轉檔案中加入選擇性屬性 UserRoot 。 此屬性會指定每個使用者信箱在來源電子郵件系統之虛擬共用資料夾結構中的位置。 例如,前往 Terry 信箱的路徑是 /users/terry.adams。
以下是包含 UserRoot 屬性之 CSV 檔案的範例:
EmailAddress,UserName,Password,UserRoot
terrya@contoso.edu,mailadmin,P@ssw0rd,/users/terry.adams
annb@contoso.edu,mailadmin,P@ssw0rd,/users/ann.beebe
paulc@contoso.edu,mailadmin,P@ssw0rd,/users/paul.cannon
步驟 3:建立 IMAP 移轉端點
若要成功移轉電子郵件,Microsoft 365 必須連線到來源電子郵件系統並與之通訊。 若要這樣做,Microsoft 365 會使用移轉端點。 移轉端點也會定義要同時移轉的信箱數目,以及要在每 24 小時執行一次的增量同步處理期間同時同步處理的信箱數目。 若要建立 IMAP 移轉的移轉端點,請先連線至 Exchange Online。
若需要移轉命令的完整清單,請參閱移動與移轉 Cmdlet。
若要在 Exchange Online PowerShell 中建立名為 "IMAPEndpoint" 的 IMAP 移轉端點,請執行下列命令:
New-MigrationEndpoint -IMAP -Name IMAPEndpoint -RemoteServer imap.contoso.com -Port 993 -Security Ssl
您也可以新增參數來指定同時移轉、同時增量移轉和要使用的通訊埠。 下列 Exchange Online PowerShell 命令會建立名為 "IMAPEndpoint" 的 IMAP 移轉端點,該端點支援 50 件同時移轉,以及最多 25 件同時增量同步處理。 它也會將端點設定為使用通訊埠 143 來進行 TLS 加密。
New-MigrationEndpoint -IMAP -Name IMAPEndpoint -RemoteServer imap.contoso.com -Port 143 -Security Tls -MaxConcurrentMigrations
50 -MaxConcurrentIncrementalSyncs 25
如需 New-MigrationEndpoint Cmdlet 的詳細資訊,請參閱New-MigrationEndpoint。
確認是否正常運作
在 Exchange Online PowerShell 中執行下列命令來顯示 "IMAPEndpoint" 的資訊:
Get-MigrationEndpoint IMAPEndpoint | Format-List EndpointType,RemoteServer,Port,Security,Max*
步驟 4:建立並啟動 IMAP 移轉批次
您可以使用 New-MigrationBatch Cmdlet 來建立 IMAP 移轉的移轉批次。 您可以建立移轉批次,並加上 AutoStart 參數來自動啟動它。 或者,您可以建立移轉批次,之後再使用Start-MigrationBatch Cmdlet 來啟動該批次。
下列 Exchange Online PowerShell 命令將會使用名為 "IMAPEndpoint" 的 IMAP 端點自動啟動名為 "IMAPBatch1" 的移轉批次:
New-MigrationBatch -Name IMAPBatch1 -SourceEndpoint IMAPEndpoint -CSVData ([System.IO.File]::ReadAllBytes("C:\Users\Administrator\Desktop\IMAPmigration_1.csv")) -AutoStart
確認是否正常運作
執行 Get-MigrationBatch Cmdlet 來顯示 "IMAPBatch1" 的資訊:
Get-MigrationBatch -Identity IMAPBatch1 | Format-List
您也可以執行下列命令來確認批次已啟動:
Get-MigrationBatch -Identity IMAPBatch1 | Format-List Status
步驟 5:將您的電子郵件路由傳送至 Microsoft 365
電子郵件系統使用稱為 MX 記錄的 DNS 記錄來找出要將電子郵件傳遞到哪裡。 在電子郵件移轉過程中,您的 MX 記錄指向來源電子郵件系統。 現在電子郵件移轉至 Microsoft 365 已完成,現在可以將您的 MX 記錄指向 Microsoft 365。 這有助於確保將電子郵件傳遞至您的 Microsoft 365 信箱。 藉由移動 MX 記錄,您也可以在準備好時關閉舊的電子郵件系統。
我們針對許多 DNS 提供者提供變更 MX 記錄的特定指示。 如果您的 DNS 提供者不包含在內,或者如果您想要了解一般指示,我們也會提供一般 MX 記錄指示。
您的客戶與合作夥伴的電子郵件系統最多可能需要 72 小時才能辨識已變更的 MX 記錄。 請至少等待 72 小時,再繼續進行下一個工作:步驟 6:刪除 IMAP 移轉批次。
步驟 6:刪除 IMAP 移轉批次
在變更 MX 記錄並確認所有電子郵件會路由傳送到 Microsoft 365 信箱後,通知使用者他們的郵件將移至 Microsoft 365。 在此之後,您便可以刪除 IMAP 移轉批次。 在刪除移轉批次之前,請先確認下列事項。
所有使用者都使用 Microsoft 365 信箱。 刪除批次之後,傳送至內部部署 Exchange Server 信箱的郵件不會複製到對應的 Microsoft 365 信箱。
Microsoft 365 信箱在郵件開始直接傳送給信箱之後至少同步一次。 若要這樣做,請確定移轉批次的 [上次同步處理時間] 方塊中的值比直接路由傳送至 Microsoft 365 信箱時還要新。
若要在 Exchange Online PowerShell 中刪除 "IMAPBatch1" 移轉批次,請執行下列命令:
Remove-MigrationBatch -Identity IMAPBatch1
如需 Remove-MigrationBatch Cmdlet 的詳細資訊,請參閱Remove-MigrationBatch。
確認是否正常運作
在 Exchange Online PowerShell 中執行下列命令來顯示 "IMAPBatch1" 的資訊:
Get-MigrationBatch IMAPBatch1"
此命令會傳回狀態為 Removing 的移轉批次,或傳回錯誤,指出找不到移轉批次而需確認該批次是否已刪除。
如需 Get-MigrationBatch Cmdlet 的詳細資訊,請參閱Get-MigrationBatch。