SSRS Subscription: newly defined fails, old one works

3k views Asked by At

Newly Created subscription for new report fails with error " Failure sending mail: The specified string is not in the form required for an e-mail address.Mail will not be resent."

It is defined in the same way the existing one, using same ReportServer with unchanged config since it started working. Using full email addresses ([email protected]), existing SMTP Server that is set up on Exchange Server (working, other services use it successfully) but queue does not pick up new subscription emails. Security is individually managed for this report (limited acces, users added using full DOMAIN\User Name notation).

There were changes in firewall/proxy settings, but SSRS is internal anyway so don't see the connection..

Where else can I look to see what's the problem?

2

There are 2 answers

0
AcePL On BEST ANSWER

I deleted subscriptions and recreated them from scratch. And no errors, all works fine. Funny part is that I entered email addresses manually, in contrast with previous attempts on copy&paste them from elsewhere.

Still weird.

2
William Ledbetter On

it is possible that when you copied they were including characters, the names must match exactly. I have had this issue, very finicky...

here are some helpful scripts for analyzing subscriptions, Microsoft does not make it easy to identify individual users and reports in the back-end, but you may find the typo here if there is one hiding:

;

WITH subscriptionXmL
AS (
    SELECT SubscriptionID
        ,OwnerID
        ,Report_OID
        ,Locale
        ,InactiveFlags
        ,ExtensionSettings
        ,CONVERT(XML, ExtensionSettings) AS ExtensionSettingsXML
        ,ModifiedByID
        ,ModifiedDate
        ,Description
        ,LastStatus
        ,EventType
        ,MatchData
        ,LastRunTime
        ,Parameters
        ,DeliveryExtension
        ,Version
    FROM ReportServer.dbo.Subscriptions
    )
    ,
    -- Get the settings as pairs
SettingsCTE
AS (
    SELECT SubscriptionID
        ,ExtensionSettings
        ,
        -- include other fields if you need them.
        ISNULL(Settings.value('(./*:Name/text())[1]', 'nvarchar(1024)'), 'Value') AS SettingName
        ,Settings.value('(./*:Value/text())[1]', 'nvarchar(max)') AS SettingValue
    FROM subscriptionXmL
    CROSS APPLY subscriptionXmL.ExtensionSettingsXML.nodes('//*:ParameterValue') Queries(Settings)
    )
SELECT *
FROM SettingsCTE
WHERE settingName IN ('TO', 'CC', 'BCC')

Also find this lovely article about setting up subscriptions:

http://www.sqlcircuit.com/2012/10/ssrs-implementation-of-file-share.html