Mail notifications are duplicated when using Microsoft Exchange Server
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
The content on this page relates to platforms which are not supported. Consequently, Atlassian Support cannot guarantee providing any support for it. Please be aware that this material is provided for your information only and using it is done so at your own risk.
Problem
When users receive notifications from Confluence, those notifications are duplicated, sometimes more than once. The content of the emails are identical.
There are no errors in the application log, and increasing the SMTP timeout in Confluence does not resolve the problem.
Diagnosis
Environment
- Microsoft Exchange is being used as the Mail Server
- There are no significant queues from mails from Confluence
Diagnostic Steps
- Try setting up another temporary Mail Server, such as Gmail to see if the problem persists
- Try enabling protocol logging on the Exchange Server
A test environment is ideal for both checking the problem is reproducible, and avoiding disruption to production instances
You may see the following message in the SMTP logs from Exchange:
2016-03-30T02:54:52.036Z,SERVER\Relay from Location,08D33F1F53A90D4C,23,x.x.x.x:25,x.x.x.x:60327,*,Tarpit for '0.00:00:30.935' due to 'DelayedAck',Expired;Timeout
Cause
The tarpit message in the logs indicates that the logs have been delayed - causing the message to be retried (and then submitted to the queue).
Resolution
The MaxAcknowledgementDelay
value must be set to zero. First, verify the current status by running the following command in the Exchange Management Shell:
Get-receiveconnector “connector name” | fl sort-by *max*
If the value for MaxAcknowledgementDelay is greater than zero, use the following command to set the value to zero:
Set-ReceiveConnector "Default connector (Servername)" -MaxAcknowledgementDelay 0
Credits
The source for this knowledge base article can be found at the Exchange Gloves Blog.