Unexpected Sync Behavior with Outlook and IMAP

This article applies to recent versions of SmarterMail. View articles for SmarterMail 16.x and earlier.

Problem:

When syncing your SmarterMail account to Outlook via an IMAP connection, odd syncing behavior is noticed within Outlook:
 
  • Inability to delete items
  • When composing an email, perpetual drafts are saved and are not removed upon sending the message
  • When attempting to move a message from one folder to another, the message appears in the new folder as expected but remains in the old. (In essence, it is copied, not moved.)

Solution:

First, review your SmarterMail IMAP logs to determine if the issue is caused by an incorrect UID Validity Value of 0. Then, if a value of 0 is found, force an update to change all UID Validity Values from 0 to 1. 
 

Details:

UID Validity Values are utilized when syncing SmarterMail emails via IMAP. In SmarterMail 14.4.5784, we performed a clean up of these values so that, moving forward, all UID Validity Values equal 1 or higher. SmarterMail contains the code to update these values on an upgrade; however, we've found some instances where the update wasn't completed in its entirety (though the process shows as being 'Done' within the mailConfig.xml file). Because newer versions of Outlook require a UID Validity Value of 1 or higher, any values remaining as 0 in SmarterMail can cause unexpected syncing behavior in Outlook. 
 
Determining if the issue is caused by an incorrect UID Validity Value of 0
To determine whether the odd syncing behavior is caused by a bad UID Validity Value, first review the IMAP logs for the account experiencing the issue:
 
  1. Log into SmarterMail as an Administrator.
  2. Click on the Manage icon.
  3. In the navigation pane, click on Troubleshooting.
  4. Click on the View Logs tab.
  5. Select an appropriate date range and change the Type to IMAP. For the Search String, enter the email address of the user experiencing the problem. 
  6. Click Search
  7. In the logs that are returned, look for the UID Validity Value of the specific folder(s) the user is interacting with. The line(s) you're looking for will be similar to: 
    * OK [UIDVALIDITY 0] UIDs valid
(If all UID Validity Values show a correct value of 1 or higher, please submit a ticket to the SmarterTools Support Department for a further review.) 
 
Forcing an update to change all UID Validity Values from 0 to 1
If you find a UID Validity Value of 0, you will need to force SmarterMail to complete the global UID update process:
 
  1. Sign into the server where SmarterMail is installed.
  2. In the server's Services panel, Stop the SmarterMail service and verify the mailservice.exe is no longer running.
  3. Navigate to the settings.json file, which, by default, is located at C:\Program Files (x86)\SmarterTools\SmarterMail\Service\Settings\.
  4. Make a backup copy of the settings.json file.
  5. Open the settings.json file in a text editor, like Notepad. 
  6. Find the following line: 
    "state_uidvv_fix_progress": "done"
  7. Remove the word "done" so that the line looks like this: 
    "state_uidvv_fix_progress": "" 
  8. Optional: To reduce the load on your mail server, you can also throttle the number of mailboxes that are updated per hour. To throttle the update process, add the following line beneath the "state_uidvv_fix_progress" tag shown in step #6. Replace the "XX" with the number of mailboxes to process per hour: 
    "max_uidvv_fixes_per_hour": XX
  9. Save the settings.json file. 
  10. Restart the SmarterMail service. 
 
After restarting the SmarterMail service, any account that had a UID Validity Value of 0 will be updated to 1. Any user that was effected by this change will need to force a resync of the IMAP account within Outlook. Once the process completes, Outlook should behave as expected.