My company has several reports on a shared subscription setup to send once a day. Recently, two of these reports unexpectedly started sending 4 times a day. The subscription had not changed and no new subscriptions had been created. The reports were identical including the timestamp in the subject and seem to run about 15 minutes apart. The subscription was reporting an error; “Failure sending mail: One or more errors occurred.”. This is not very useful. I know the email is getting sent because the users are getting it (4 times). After some investigating I discovered two settings in the rsreportserver.config config file; MaxRetries and SecondsBeforeRetry. The default for MaxRetries is 3 and the default for SecondsBeforeRetry is 900.
<Extension Name="Report Server Email" Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider,ReportingServicesEmailDeliveryProvider"> <MaxRetries>3</MaxRetries> <SecondsBeforeRetry>900</SecondsBeforeRetry>
Now, i’m starting to understand what’s happening. The users are getting the reports 4 times because the subscription runs once, successfully sends to a bunch of email addresses, then at some point fails. That’s the 1st email. Then 900 seconds or 15 minutes later the subscription runs again. This time it also successfully sends to a bunch of email addresses, then at some point fails. This happens two more times because we the MaxRetries setting is set to 3. In other words, the initial email + three retries equals four emails. Now that I understand why the emails are getting set 4 times I need to figure out what is failing. Finally, I realized the reports had something in common. The recipient’s list includes email addresses outside of the domain. (Sending to an outside domain recently became possible with the addition of SMTP authentication in SSRS.) The issue was due to the password expiring on the windows account that was being used for SMTP authentication.