This step in the project is where a discussion is made about the optimal time in the calendar to perform a cutover and to ensure that expectations are set properly.
The cutover event is conceptually simple and involves to key elements:
- Changing mailbox user settings to point to the new public folder mailboxes.
- Mail-enabling the new public folders, if necessary.
Note that the cutover event is really about end-user clients and not about the folders themselves. At this point in the project 95-99% of all the data should have been synchronized to the target system.
The amount of time for a cutover event is mostly determined by the number of users that must be updated. Updating user accounts is done by Set-Mailbox commands to point them to one of the target public folder mailboxes. The Set-Mailbox command has a parameter named DefaultPublicFolderMailbox that allows for a static assignment to a user for a given public folder mailbox. When Outlook makes its next AutoDiscover query for the mailbox the response will contain the newly assigned mailbox info and Outlook will connect to that mailbox for the user to browse the folder hierarchy.
Modern Outlook (outlook 2016 and later), while running, will re-query AutoDiscover once every hour. Upon receiving the updated public folder value, it will drop the current hierarchy connection and create a new one. In most cases user will not notice this change. This also means the end user risk is very low since Outlook will either be connected to the old public folders or the new. There is no normal case where Outlook would suddenly lose all connection to public folders. Note however that although Outlook will re-query once an hour, it can take up to two hours or more before the Outlook updates the connection. The reason is that update the mailbox settings with the DefaultPublicFolderMailbox value inherently has a delay before it reaches AutoDiscover.
If Outlook is not running when the cutover changes are made, Outlook may still take an hour after first launch to detect the change. This is because on startup Outlook may use a cached version of the AutoDiscover response and as such would not know about the change until it normal cycle occurs to look for changes (once per hour).
Creating a new Outlook profile should cause the connection to immediately go to the new public folder system since there would not be any cached information to use.
Friction Points
Priasoft attempts to do as much as possible to preserve the end-user experience after cutover. However, due to limitations of some elements of Outlook, not everything can be preserved.
Public Folder Favorites
One of the main points of friction following ANY public folder migration, regardless of tools used, are Public Folder Favorites. Outlook has a feature whereby a user that is browsing the public folder hierarchy can right-click any given folder and “add to favorites”. This creates a type of shortcut to the folder so that a user doesn’t have to walk down the tree to get to the contents or optionally the subtree of this folder. Public Folder Favorites are stored in a special hidden folder in each user’s mailbox. The data stored for each favorite is proprietary and mostly undocumented by Microsoft. Priasoft knows from testing and reverse-engineering efforts that these favorites are storing the mapi EntryID of the specific folder and not the folder path. The EntryID is a special binary value (very similar to the objectGuid property of an Active Directory object) that uniquely identifies a folder. If a folder is moved from one parent folder to another, the EntryID does not change. It is for this reason (as well as some others) that the folder path is not stored in the favorite.
The side effect of this is that there is no way for a user or administrator to determine the folder path for any given public folder favorite. Right-clicking and showing the properties of a favorite will only show the path of the favorite itself, not the path of the folder to which it points. If a user created the favorite months or years ago, the user may not be able to remember where the folder resides in the hierarchy.
When the cutover to the new public folders occurs for end users, existing favorites will no longer work and clicking on one will throw and error dialog to the end user. There only resolution is to have the user remove the favorite and recreate the same, if desired.
The Priasoft PF Toolbox does have a feature that can scan and discover mailboxes that have favorites and can report on them, including calculating the related folder path for each favorite entry. However, Priasoft has no ability to remove or update the favorites. The reason is because there is no developer support for such actions and structure of the stored data has no documentation from Microsoft. Priasoft’s ability to report on the data is solely due to reverse-engineering by some smart people on our development team, but no confidence could be made with regards to being able to properly update or remove the data with potentially causing some secondary issue at the same time.
Historically, Priasoft has found that only 10% or less of an organization uses public folder favorites. However, this is an average across many customers and usage at your organization may be different. The reporting mentioned above can help understand the permutation of this feature in your environment. Note however that just because a mailbox has a public folder favorite does not mean the user actively uses it or even remembers that it exists. There is no ‘last access time’ property for the favorite entries.
Public Folder Contacts Folder as Address Book
With similar caveats as for public folder favorites, a feature in Outlook exists whereby a user can make a public Contact folder appear in the users list of address books as a virtual address book. This is a very rarely use feature and is buried behind several non-intuitive button clicks, but the feature exists, nonetheless. This feature cannot be migrated or preserved and will be broken after cutover if in use. Users will need to disable the feature before cutover if they want it removed from the list of address books. After cutover there is no way to remove a bogus address book without creating a new outlook profile. There is no reporting option available for this feature.
Public Folder Assistant Rules
Exchange public folders have, and always have had, the ability to create folder-specific rules that can provide automatic handling of items in folders for specific actions. These are known as Folder Assistant Rules. The rules are very similar to mailbox rules but are very narrowly scoped and are limited in criteria and action. Common public folder rules are to delete or move data matching some criteria. For mail-enabled public folders there are a few more options like responding with a template or redirecting to another recipient.
Priasoft is not able to migrate public folder rules. The Priasoft Public Folder Analysis Toolbox (PFAnalyzer) product has the ability to identify folders with one or more rules, if such information is needed.
Historically, Priasoft finds that fewer than 5% of folders in the hierarchy have rules assigned, if any at all.
Mail-Enabled Public Folders (MEPFs)
Mail-Enabled Public Folders are a complex topic unto itself. Priasoft has produced a article on this topic here: Secret Challenges of Mail-Enabled Public Folders
In the context of the migration steps, public folders that are mail-enabled in the source environment should be mail-enabled in the target environment with the same values and settings. The Priasoft PF Toolbox has an option to capture all the current MEPFs and to produce a PowerShell script to mail-enable the new folders. The feature will capture the myriad of setting for which a MEPF can have such as, but not limited to: email addresses, X500, group membership, send-as permissions, delivery restrictions, and more.
The ability to successfully execute this script depends upon the type of migration being performed.
Use by Applications
A review of all applications that send mail to public folders should also be reviewed. Such applications may need to be reconfigured to send mail directly to the target mail system, use forwarding objects, or be determined to break without resolution. The last point may mean a delay of the cutover if critical applications cannot be updated to work with the migrated public folders.
Furthermore, applications and their integration with mail can be at different levels. Many applications simply send mail using SMTP to an email address and use an internal mail gateway (usually a specific Exchange server). Some applications may have their own mailbox from which mail is sent to public folders. And some other applications may open and create data directly in public folders using Exchange Web Services (EWS), powershell, or even MAPI.
Applications that Send or Create Mail
For applications that send mail by SMTP, a review of how this is specifically performed is necessary. Very often such applications use an internal and anonymous relay server for the sending of mail. If the smtp server used is targeted for deprecation and removal, the application will obviously need to be updated to use a different mail server.
In cross-forest and cross-premises scenarios the previous concepts about mail routing are of importance again in this context. If an application continues to use a mail gateway server from the source environment, mail delivery to the target folder will depend upon how the source environment is configured for forwarding. If no forwarding is intended to be used because mail routing will be (or already is) using the target mail servers, current applications that use the source mail servers will fail to deliver mail and will need to be changed to send mail using one of the mail servers in the target environment.
Office 365 does not allow anonymous relay of mail. It is also possible that an on-premises target environment is also configured without any anonymous relay gateways. In these cases, applications have to be reconfigured to authenticate before sending mail and if the application provides no capability for such, the cutover may need to be delayed or the application identified as broken.
If applications exist that send mail at a high frequency, the Office 365 receive limits may affect the application’s behavior. As mentioned earlier, Exchange Online limits inbound delivery to 3,600 items per hour per recipient and 1,200 items per hour from a single sender to the same receiver.
For applications that are more deeply integrated and create mail directly in folders, and if those applications behaviors are not changed, they will continue to create mail in the source public folders after cutover. This would prevent the deprecation of the source public folder server(s) and would require continual use of the Priasoft PF Toolbox to sync those changes forward to the target environment. Priasoft’s PF Toolbox is licensed in 1yr increments.
Strategies for Non-Delivery During Cutover
In the previous paragraphs it was mentioned several times about risks of non-delivery in cases where existing objects must be removed before mail-enabling the public folders. Several strategies exist to handle this concern:
- Ignore and allow the non-delivery to occur
- Suspend all SMTP delivery and allow it to queue
- Hold mail for specific email addresses and release after cutover
- Change delivery endpoint entirely before cutover
Ignore and Allow Non-Delivery
While a first reaction to this may be shocking, often this can be the cleanest and simplest option. If a review of mail delivery volumes to the mail-enabled public folders shows that either there is very little activity overall or that there is near zero activity over a specific time period (nights and weekends most likely), it may be best to do the cutover during a quiet period and to set expectations accordingly. If one or a few messages do come in over the cutover period, a re-send of the message will succeed after cutover.
Suspend All SMTP
This option ensures that no mail is lost and that no mail is returned as a non-delivery. However, this option affects ALL mail delivery, not just mail targeting public folders. When mail delivery is suspended, it will queue at the previous hop in the mail route. This is an inherent ability of SMTP and the queue will hold mail for up to 4 days before being returned.
For cases where delivery of mail to public folders is important, this tends to be the best and safest option. Expectations would need to be set to users that they may see a delay in mail delivery. The duration of the delay will should only be a few minutes our hours to possibly 24 hours or slightly more and is influenced by the quantity of mail-enabled public folders that have to be processed. A 24-hour or longer duration would be for cases where there are 10s of 1000s of mail-enabled public folders to process.
Once all public folders have been processed, and mail forwarding setup, the queued mail will be delivered to the target public folders when the SMTP suspension is removed.
Hold Mail for Specific Addresses
This option can be used to hold mail only for the mail-public-folders that are important to not have delivery failures (or all). This option is not available with on-premises Exchange directly but can be used in Office 365 or possibly by a mail gateway outside of Exchange.
Office 365 has a feature called “Hosted Quarantine”, which is a type of mail transport rule. Using this rule one can set one or more SMTP addresses for which the rule applies and inbound mail to those addresses will be placed in “quarantine”, which is a type of holding queue for mail. Once the public folder cutover actions complete, the rule can be disabled and removed, and the quarantined mail can be “released” and will then delivery to the target public folders. A quirk of this option is that a single transport rule has a limit as to the number of email addresses it can target. The limit is a total byte size limit of all the addresses and so the quantity of address values will vary depending upon the length of each address. Experience has shown that a few hundred address per rule is possible and multiple rules can be used if needed.
For non-Office365 scenarios, the same may be possible if an upstream mail gateway has similar capability. However, a quirk of this scenario is that it will only work for external senders. Internal senders would not route through the gate way and would be solely handled by the Exchange server itself.
Change Delivery Endpoints
This option is simply one that changes the delivery of mail from the mail-public-folder to some other object like a shared mailbox. Essentially this is a conversion option whereby the mail-public-folder is disabled for mail delivery and the email addresses, legacyExchangeDN, and group memberships are captured and applied to a user or shared mailbox, distribution group, or contact.
As in other cases there will exist a small risk of non-delivery in the time between the mail-disabling of the public folder and the email address(es) appearing on the converted object. However, on a single object such as this the duration of this should only be a few minutes.
