MS Exchange Folder, Calendar & Contact Synchronization
MailArchiva can be configured to synchronize folder structures, calendar and contact entries associated with all mailboxes with MS Exchange. When logged in as an auditor, the folder view displays all mailboxes available on the mail server. The filter at the bottom left corner of the screen, conveniently enables one to filter out the desired mailboxes.
Folder sync operations download and link calendar and contact entries to associated mailboxes and folders. However, for email data specifically, these operations do not download, but merely link existing data already present in the archive, to the folder structures present in Exchange / O365. The reason is that to be compliant with archiving legislation, MailArchiva requires the journal envelope information. This journal envelope data is not available when retrieving emails directly from user mailboxes. Journal envelopes are only generated by Microsoft Exchange as part of the SMTP journaling process in 2) below.
There are three separate processes:
- Import - once-off import of historical data.
- Journaling - receive incoming, outgoing and internal traffic via SMTP listener interface
- Folder sync - links the existing emails received from journaling above to folders. It is merely an indexing exercise. If the graph database is deleted, MailArchiva will resync folder structures again.
MailArchiva performs synchronization with MS Exchange via the following mechanisms:
- Every fifteen minutes or so, MailArchiva iterates through all mailboxes residing in MS Exchange, and synchronizes all recent changes made to each of their folders
- MailArchiva registers for streaming events with MS Exchange, and listens for incoming data. When receiving an event, it initiates a sync operation on the changed folder associated with the event
Since sync operations are primarily push operations, there should be minimal performance impact on Exchange servers.
To enable Exchange folder sync with MS Exchangs.
- Follow the steps in Logins to setup Active Directory authentication
- Follow the steps in Exchange Impersonation to setup an impersonation account
- Create and enable an Exchange client connection in Connections
- Enable tree view by selecting "When Data Available" in Show Tree View field (accessible from Configuration->Search)
Once these steps are performed, MailArchiva should periodically synchronize folders with MS Exchange.
As an added bonus, when syncing with MS Exchange, MailArchiva will automatically archive all contact (vCard) and calendar (iCal) information.
When importing emails using the direct Exchange import method, Exchange folder, calendar and contact information is also imported.
When importing PST data in Configuration->Import Data, MailArchiva will import the folder structure of the PST automatically.
MailArchiva uses the view filter of the logged in user's role to determine which mailboxes and folders should be displayed. For example, an end-user assigned the User Role with the view filter %email%, will only be able to see the folders that pertain to them. An auditor assigned the Auditor role with the view filter empty, will be able to see all folders corresponding with all mailboxes.
To disable the folder view all together, in Configuration->Search, select Show Tree View drop down dialog to suit your preference.
Folder synchronization, especially during initial sync, may place additional pressure on MailArchiva's and/or Exchange server's CPU/bandwidth resources. Fortunately, by manipulating the Sync Wait and Sync Interval parameters in Configuration->Connections->Exchange Connection, it is possible to control the rate of synchronization and thereby adjust the pressure on resources.
Sync Wait specifies the duration that MailArchiva will wait between successive GET operations. Sync Interval specifies how long MailArchiva must wait between the processing of all user's folder structures before beginning the cycle again.
To slow synchronization down, and thereby relieve pressure on CPU/bandwidth resources, increase the Sync Wait and Sync Interval to a higher value in Configuration->Connections->Exchange Connection. Conversely to speed it up, lower the sync wait and sync interval. To acheive a balance suitable for your environment, visit Status->Charts section to examine the impact of various adjustments.
At each sync cycle, MailArchiva iterates through each mailbox, iterating through each folder in a given mailbox, and scanning each folder for changes. A maximum of 512 changes are returned per folder. if there are more than 512 changes, MailArchiva will continue on and process the remaining items in following sync cycles.
loop each mailbox
folderHierarchyChanges = syncFolderHierarchy
itemChanges = syncFolderItems
loop each itemChanges
Found this information useful? Visit mailarchiva.com to learn more about MailArchiva.