
Sorry, this entry is only available in Italian.
Here are the steps required in sequence to migrate an IMAP domain to Exchange Online.
example of csv
EmailAddress,UserName,Password terrya@contoso.edu,contoso\terry.adams,1091990 annb@contoso.edu,contoso\ann.beebe,2111991 paulc@contoso.edu,contoso\paul.cannon,3281986
You can put all users in a migration. When a migration ends in error, you can delete a user from it and put the same user in another migration. You can have multiple migrations at the same time but the same user cannot exist in more than one migration. Migration can exist for up to 60 days.
In reality, Microsoft does a more sophisticated operation than a “trivial” migration: it makes a sync. Synchronize entire imap mailbox to Exchange mailbox in one direction (from imap to exchange). It is sophisticated but less effective than a normal migration: it is not in real time but after 24/30 hours. So if you want to replace the mail server, users would lose at least 24 hours of email.
On Outlook clients, you can add the new Exchange account online. It will be the same as the old mailbox, but will be managed by Exchange. For a while you will then have 2 mailboxes that manage the same mail but on different servers: one is the old imap server, the other one the new Exchange server. When the migration is finished and you have also moved the mx records on the dns, you can delete the old mailbox. Before doing this, however, you must also memorize the contacts and the calendar from the “old” to the “new”:
Contacts: select all contacts, right click, select “move” and then “copy to folder …”, Exchange mailbox contacts.
Calendar: To move appointments between 2 calendars: both calendars and drag appointments from old to new.
If you have any problem you can investigate using PowerShell. First install ExchangeOnlineManagement.
Connect to the tenant:
Connect-ExchangeOnline -UserPrincipalName <your Admin Username>
The password request screen appears.
List of all endpoints in the tenant
get-migrationendpoint|FL
endpoint test
Test-MigrationServerAvailability -Endpoint <Identity of the endpoint from above>
view sync configuration of single user
Get-SyncRequest -Mailbox <user>
esport migration result for a user
Get-MigrationUserStatistics <user> -IncludeSkippedItems -IncludeReport -DiagnosticInfo "showtimeslots, showtimeline, verbose" | Export-Clixml C:\temp\MigMyUser.xml
Exchange mailboxes have a 35MB limit. If you have to move something bigger during the migration you have to change this limit.
Set-Mailbox -Identity <user> -MaxReceiveSize 150MB
Documentation:
Exchange online Outlook accounts has the Global Address List (GAL), as a default address book: the one that contains corporate accounts. To set the user’s address book (conatcts) as default, synchronized on Outlook online, you need to:
Through Powershell it is possible to connect to a Microsoft 365 tenant to perform operations on users, groups and any other element of the tenant. When you use this tool, Powershell presents you with the mask for entering your account and password. You can write accounts and passwords directly in the Powershell script but it would be a serious security compromise.
An alternative is to build a software that connects directly to the Tenant through customized keys present in the Tenant itself. In other words, it is necessary to communicate to the Tenant that there is a certain application that is authorized to access the Tenant. Furthermore, for each operation that you want to perform on the Tenant it is necessary to specify the appropriate permissions. To create these applications, we recommend that you follow the excellent tutorial “.Net Core console application for calling Microsoft Graph“. This post proposes the images present in the previous tutorial only to specify how the application must be prepared on the Microsoft Tenant.
Open a browser and navigate to the Azure Portal. Login using your account. Select the resource “Azure Active Directory”. On the left side menu, select “App regitstration”. Click New registration from the current page.
On the Register an application page, specify the following values:
(*) The Redirect URI value must be unique within your domain. This value can be changed at a later time and does not need to point to a realy hosted URI.
It is now necessary to store 2 values that will be used in your application:
Click Certificates & secrets.
After the screen has updated with the newly created client secret copy the VALUE of the client secret. This secret string is never shown again, so make sure you copy it now.
Click API permissions.
Now you have to choose between the permissions to authorize your app. For example, to create an application to read alla information about Tenant’s users, in the “Select permissions” search box type “User”.Select User.Read.All from the filtered list. At the end, on the API permissions content blade, click Grant admin consent for the Tenant.
Let’s see what data your application needs to connect and operate on the Microsoft Tenant.
Documentation
Cost : 50,64 euro / year (+ VAT)
Cost : 126,48 euro / year (+ VAT)
Every version is compatible with Windows 10, Windows 8.1, Windows 7 Service Pack 1, and the two most recent versions of macOS. All languages included.
Documents : https://www.microsoft.com/en-us/microsoft-365/business