某些用户的 EXM 电子邮件中的链接已损坏
Links in EXM emails are broken for some users
我们遇到以下问题:当我们通过 EXM 发送电子邮件时,电子邮件正文中的 links 对某些用户不起作用。
默认情况下,电子邮件正文中的链接始终转换为类似以下内容:
http://domainname/sitecore/RedirectUrlPage.aspx?ec_contact_id=xxxx84B137D2037C7D180&ec_message_id=xxxxB4CEAA3FD1A3B&ec_url=%2fthelinkpath
这显然是出于跟踪原因。
但是,一些用户在导航 link 时遇到 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
有没有人遇到过这个问题?
的确,这是因为存储了之前会话的 cookie,谢谢 Tchami。
Sitecore 支持回答相同:
This error occurs when you open multiple mails with multiple
contactId's in the same browser.
但是除了清除cookies或者换个浏览器之外,他们并没有提出任何解决方案。
但是,即使对于这种很少出现的情况,我们也不想破坏用户体验。
所以,为了处理异常,我们发现应该重写下面的流水线处理器:
<processor type ="Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact, Sitecore.EmailCampaign" />
你可以看看自定义处理器的代码here。
我们遇到以下问题:当我们通过 EXM 发送电子邮件时,电子邮件正文中的 links 对某些用户不起作用。
默认情况下,电子邮件正文中的链接始终转换为类似以下内容:
http://domainname/sitecore/RedirectUrlPage.aspx?ec_contact_id=xxxx84B137D2037C7D180&ec_message_id=xxxxB4CEAA3FD1A3B&ec_url=%2fthelinkpath
这显然是出于跟踪原因。
但是,一些用户在导航 link 时遇到 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
有没有人遇到过这个问题?
的确,这是因为存储了之前会话的 cookie,谢谢 Tchami。
Sitecore 支持回答相同:
This error occurs when you open multiple mails with multiple contactId's in the same browser.
但是除了清除cookies或者换个浏览器之外,他们并没有提出任何解决方案。
但是,即使对于这种很少出现的情况,我们也不想破坏用户体验。
所以,为了处理异常,我们发现应该重写下面的流水线处理器:
<processor type ="Sitecore.Modules.EmailCampaign.Core.Pipelines.RedirectUrl.IdentifyContact, Sitecore.EmailCampaign" />
你可以看看自定义处理器的代码here。