From Exchange Server¶
Read Coming from another server first. This page covers what is particular to on-premises Exchange.
The directory stays: Active Directory keeps everyone's account and password, and inbuxa signs people in against it. Mail comes over IMAP. Calendars and contacts are the hard part, because Exchange hands them out only in its own formats.
Who people are¶
Choice A, with the Active Directory settings. Two changes suit Exchange:
- Only mailbox users. Add
(homeMDB=*)to both filters, so people who have an AD account but no Exchange mailbox don't get one in inbuxa either. - Aliases. Exchange keeps them in
proxyAddresses, which inbuxa can't read (the values carry ansmtp:prefix). List them, and recreate each one as described under aliases:
Get-Mailbox -ResultSize Unlimited |
Select-Object PrimarySmtpAddress,
@{n='Aliases'; e={ ($_.EmailAddresses |
Where-Object { $_ -clike 'smtp:*' }) -replace '^smtp:', '' }}
Lowercase smtp: is a secondary address. Uppercase SMTP: is the primary
one, which is already mail.
Distribution groups become mailing lists:
Get-DistributionGroup -ResultSize Unlimited |
ForEach-Object { $_.PrimarySmtpAddress; Get-DistributionGroupMember $_ }
Shared and resource mailboxes¶
A shared mailbox, room or equipment mailbox is a disabled AD user, so the filters above leave it out. That is right for signing in, since nobody signs in as it. It is wrong for mail, which then has nowhere to go.
There is no worked procedure for these yet. One way that fits how inbuxa works: drop the disabled-account clause from the mailbox filter only, so the mailbox gets an account that receives mail but can't sign in, then share its folders with the people who use it. The cost is that mail to anyone disabled in AD is then accepted too. Try it on one mailbox before you rely on it.
Copying the mail¶
IMAP is off by default on Exchange. Turn it on for the length of the migration:
Set-Service MSExchangeIMAP4 -StartupType Automatic
Set-Service MSExchangeIMAP4BE -StartupType Automatic
Start-Service MSExchangeIMAP4, MSExchangeIMAP4BE
Give an administrator full access to the mailboxes it copies from:
Get-Mailbox -ResultSize Unlimited |
Add-MailboxPermission -User migrator -AccessRights FullAccess `
-InheritanceType All -AutoMapping $false
imapsync then signs in to Exchange as each person with the administrator's
credentials. How that login is written differs between Exchange versions;
imapsync's Exchange notes
give the form for yours. The inbuxa side is the same as everywhere else:
[email protected]%[email protected].
Exchange's IMAP shows calendar, contacts and tasks folders as folders with nothing useful in them. Leave them out:
The folder names are in the mailbox's language; check one mailbox's list first.
When the copy is done, take the permission away and turn IMAP back off, if nothing else uses it.
Calendars and contacts¶
Exchange exports a mailbox as a PST file, and the free tool readpst (from
libpst, packaged in most Linux distributions) turns a PST into .ics and
.vcf files the webmail imports.
-
Give your administrator the Mailbox Import Export role, and export to a share Exchange can write to:
-
Convert it on a Linux machine:
-t ackeeps appointments and contacts only. Each folder of the PST becomes a directory, with the appointments in a file namedcalendarand the contacts in one namedcontacts. Rename them to.icsand.vcf, and check the first line of each readsBEGIN:VCALENDARorBEGIN:VCARD. -
Each person imports the files in the webmail. See importing a calendar and importing contacts.
Check the result on one mailbox before you run it for everyone. Recurring meetings and time zones are where conversions go wrong, and an invitation's attendees come across as a record, not as a live meeting.
Outlook can also save a single calendar as .ics, which is enough for one
person.
Outlook and phones¶
inbuxa doesn't speak Exchange's own protocols (MAPI, EWS or ActiveSync). Outlook connects to it as an IMAP account; phones use their built-in IMAP, CalDAV and CardDAV support. See Protocols.
Before the cutover, remove or repoint the autodiscover DNS record and the
service connection point in AD. Otherwise Outlook keeps finding the old
Exchange server.
What doesn't come across¶
- Public folders. Export them to PST, and put what's still needed in a shared mailbox or shared calendar.
- Transport rules, journaling and retention policies. Rebuild what you need in the console and in people's filters.
- Delegates and send-as rights. Set up sharing again in inbuxa.