1

We have a Sitecore 8.1-3 / EXM 3.3 production instance. We have sent out a test email blast. In the footer of the email is a link to /sitecore/unsubscribe.aspx. I notice that when the email actually gets sent out by EXM that the actual url in the unsubscribe link gets changed to /sitecore/redirecturlpage.aspx?ec_eq=blahblahblah... However after looking in the IIS logs what I see is that when the user clicks on the Unsubscribe link it generates a 302 redirect to /sitecore/unsubscribe.aspx. And this request generates a 404 error. However I have looked on our CD servers and that file is definitely there. I can not figure out why the request for /sitecore/unsubscribe.aspx is generating a 404 error. Any ideas?

Corey

  • can you check if you have on your CD instances Analytics.ClusterName setting value assigned. It should point to a CD host name. – Vlad Iobagiu Feb 28 '17 at 15:17
  • Can you provide any more direction on what the Analytics.ClusterName setting should be? We have an environment that has a single CM and 2 CD servers. The documentation found here - doc.sitecore.net/sitecore_experience_platform/… - isn't very clear. It just seems to suggest that they should be the same on every CD server but it doesn't really explain what that value means or how it is used. Does it have to be a valid address? Does it have to include the HTTP or HTTPS? – Corey Burnett Feb 28 '17 at 15:29
  • it should be just the name of your CD hostname without schema. if you website is yoursite.com then clustername value is yoursite.com – Vlad Iobagiu Feb 28 '17 at 15:32
  • Hmm - when I set it to yoursite.com (using my actual web site domain) I get error messages. My code fails when trying to access Sitecore.Analytics.Tracker.Current.Contact;. But if I set it to https://www.yoursite.com then at least my site doesn't throw an error. But the link to the unsubscribe.aspx still throws a 404. – Corey Burnett Feb 28 '17 at 15:41
  • I suggest you to write to sitecore support in this case. – Vlad Iobagiu Feb 28 '17 at 15:52
5

Background information

During dispatch, all links are replaced with a link to /sitecore/RedirectUrlPage.aspx with additional query string parameters such as contact id and message id.

RedirectUrlPage.aspx runs the redirectUrl pipeline, which is responsible for several things, e.g. adding click events based on the query string parameters. After running the pipeline, it will redirect you to the actual link e.g. /sitecore/unsubscribe.aspx.

The link to redirect to is set in the redirectUrl/SetRedirectToUrl pipeline processor.

Now, because some links require the query string parameters, those query string parameters needs to be passed along from RedirectUrlPage.aspx to the next page. The redirectUrl/SetRedirectToUrl pipeline processor does this using the internalCarryoverFields configuration of the processor, e.g.:

<internalCarryoverFields hint="list:AddInternalCarryoverField">
    <carryoverField type="Sitecore.EmailCampaign.Cd.Pipelines.RedirectUrl.CarryoverField, Sitecore.EmailCampaign.Cd">
        <param desc="fieldKey" value="mid" />
        <param desc="urlPattern">.*Unsubscribe.aspx</param>
    </carryoverField>
</internalCarryoverFields>

The fieldKey being the query string parameter, and the urlPattern the url pattern where the fieldKey should be passed to.

In this case we're telling that the query string parameter "mid" should be passed on to any internal urls matching the .*Unsubscribe.aspx pattern.

So, to reiterate:

  • Link in email: <a href="http://www.yourdomain.com/Unsubscribe.aspx">Unsubscribe</a>
  • Is transformed by EXM into: <a href="http://www.yourdomain.com/RedirectUrlPage.aspx?eq=encryptedquerystring">Unsubscribe</a>
  • Contact clicks the link and RedirectUrlPage redirects you to: http://www.yourdomain.com/Unsubscribe.aspx?mid=value

Problem and solution The urlPattern matching is case-sensitive, so you need to either change your links to Unsubscribe.aspx (with capital U), or add the lower-case variation to your configuration (Sitecore.EmailExperience.ContentDelivery.config).

This bug is fixed in the next EXM release.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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