对于某些用户,EXM电子邮件中的链接已中断

时间:2016-04-29 15:05:25

标签: sitecore sitecore8 sitecore-ecm sitecore-exm

我们遇到以下问题:当我们通过EXM发送电子邮件时,电子邮件正文中的链接对某些用户不起作用。

默认情况下,电子邮件正文中的链接始终转换为:

http://domainname/sitecore/RedirectUrlPage.aspx?ec_contact_id=xxxx84B137D2037C7D180&ec_message_id=xxxxB4CEAA3FD1A3B&ec_url=%2fthelinkpath

显然是出于追踪原因而做的。

但是,某些用户在导航链接时会遇到404错误。日志总是说如下:

ERROR EmailCampaign: Object reference not set to an instance of an object.
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: Sitecore.Analytics
   at Sitecore.Analytics.Tracking.StandardSession.InitializePage(ICurrentPageContext currentPageContext, ICurrentPageContext oldPage)
   at Sitecore.Analytics.Tracking.StandardSession.Identify(String userName)
   at Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact.Process(RedirectUrlPipelineArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Modules.EmailCampaign.UI.RedirectUrlPage.HandleMessageEvent(ID messageId, ID contactId)
   at Sitecore.Modules.EmailCampaign.UI.MessageEventPage.OnLoad(EventArgs e)

为用户修复此错误的唯一方法是清除其Cookie或使用其他浏览器或使用隐身模式。用户目前已从网站注销。

Sitecore版本8.0 + EXM

以前有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:5)

实际上,这是因为以前会话中存储的cookie,谢谢Tchami。

Sitecore支持的答案是一样的:

  

当您打开多个邮件时会发生此错误   contactId在同一个浏览器中。

但除了清除cookie或使用其他浏览器外,他们没有提出任何解决方案。

然而,即使对于这种很少出现的案例,我们也不想打破用户体验。

因此,为了处理异常,我们发现应该重写以下管道处理器:

<processor type ="Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact, Sitecore.EmailCampaign" />

您可以查看自定义处理器here的代码。