1

I have setup EXM mails. In footer of the mail body, there is link for subscription preference /sitecore%20modules/Web/EXM/SubscriptionPreferences.ashx.

When I sent the mail to my mail id and open the mail, On clicking the subscription preference link, it should open a page with a link with querystring e.g /sitecore%20modules/Web/EXM/SubscriptionPreferences.ashx?ec_eq=0uMnA4%2ffRO2xlcZnBiklIlB%2fdKcyQGotX

This querystring is ec_eq automatically generated by Sitecore but in my case when I click on the link, it only opens the link without querystring i.e /sitecore%20modules/Web/EXM/SubscriptionPreferences.ashx

Can somebody please suggest what could be missing that the querystring is not added to the url?

In the message container setting everything looks correct. Any idea if any other setting or config I am missing?

1 Answer 1

2

When EXM dispatches the emails campaigns, it encrypts every link in the message body. A typical example of an encrypted link is

http://{your_website_domain}/sitecore%20modules/Web/EXM/RedirectUrlPage.aspx?ec_eq={encrypted_value}

EXM.CryptographicKey and EXM.AuthenticationKey configured in the ConnectionString.config file are used to encrypt and decrypt the query string in the email campaigns sent to the end-users. So, make sure that both keys are configured correctly.

It is important to note that the test emails don't encrypt the links!

Also I would suggest to check on modifyHyperlink pipeline configuration in Sitecore.EmailExperience.Core.config file, it is being executed for every link in an email and supplements the link URL in the email to a RedirectURL link with all required URL params. For example:

<modifyHyperlink>
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.SkipAnchorLinks, Sitecore.EmailCampaign" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.SetServerUrl, Sitecore.EmailCampaign" resolve="true" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.SkipAlreadyProcessedHyperlink, Sitecore.EmailCampaign">
            <RedirectPagePath>/sitecore%20modules/Web/EXM/RedirectUrlPage.aspx</RedirectPagePath>
          </processor>
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.MapHostname, Sitecore.EmailCampaign" resolve="true" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.SetAnalyticsQueryStringParameters, Sitecore.EmailCampaign" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.HandleInternalLink, Sitecore.EmailCampaign" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.GeneratePreviewLink, Sitecore.EmailCampaign" />
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.GenerateHyperlink, Sitecore.EmailCampaign">
            <RedirectPagePath>/sitecore%20modules/Web/EXM/RedirectUrlPage.aspx</RedirectPagePath>
            <UrlQueryKey ref="settings/setting[@name='QueryStringKey.RedirectUrl']/@value" />
          </processor>
          <processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.GenerateLink.Hyperlink.EncryptQueryString, Sitecore.EmailCampaign">
            <param desc="queryStringEncryption" ref="queryStringEncryption" />
          </processor>
        </modifyHyperlink>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.