ToolsMisc. SetupUX Mail Manual Chapter 3: Programming ◆ 5293Technical Note on Desktop Messaging PerformanceUX Mail has four threads that handle IMAP4 email synchronization.● Thread 1 - Mailbox Status Change● Threads 2 and 3 - IMAP4 Synchronization● Thread 4 - SMTP DeliveryThread 1 - Mailbox Status ChangeWhen a subscriber receives a new message in their mailbox, UX Mail immediately updates the email serverwith the new message status. If a mailbox has no messages, no synchronization occurs. Thread 1 does noth-ing until a new message arrives.Threads 2 and 3 - IMAP4 SynchronizationThreads 2 and 3 are the UX Mail synchronization threads that communicate with the site’s email server.These threads handle synchronization for new messages, deleted messages, and saved messages. To syn-chronize with the email server, UX Mail polls the email server for email status updates and waits for aresponse. UX Mail will continue this routine polling as long as it receives a proper response from the emailserver. These two threads handle the synchronization for all email-enabled Subscriber Mailboxes. If a mail-box has no messages, no synchronization occurs.When the Subscriber Status ChangesIf a subscriber has new messages, UX Mail will poll every 30 seconds (best case). If the subscriber deletes orsaves a message, UX Mail will poll every 60 seconds (best case). If UX Mail sends an update for a email-enabled Subscriber Mailbox and does not receive the correct acknowledgement within 3 minutes:1. UX Mail goes back to its routine synchronization polling,2. Assumes the email server is unresponsive, and3. Does not change the status for the mailbox.Delay in response can occur if the email server is busy or makes IMAP synchronization a low priority. Keepin mind that this 3 minute delay affects synchronization for all email-enabled Subscriber Mailboxes.The Sync Pending TimerThe Sync Pending Timer (set in Tools: Misc. Setup: g_bImap4SyncPendingTimer) controls what happens whenUX Mail sends a mailbox status update and receives an incorrect response from the email server. This canoccur, for example, if a new message is received by UX Mail but is not reported by the email server. When thisoccurs:1. The Sync Pending Timer decrements (to handle the error condition).2. UX Mail goes back to its routine IMAP4 synchronization for other mailboxes.3. If the UX Mail doesn’t receive a correct acknowledgement after one synchronization cycle (30 secondsbest case), UX Mail waits another cycle for a response.4. If the response is incorrect again, UX Mail repeats the process until the number of cycles set in the SyncPending Timer decrements to 0.5. UX Mail assumes the message has been listened to. It then updates the subscriber’s message waitingLED and saves the new message in the mailbox.The Sync Pending Timer interval is in synchronization cycles (30 seconds per cycle best case).