Ссылки в электронных письмах 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)

Единственный способ исправить эту ошибку для пользователя - это очистить его куки или использовать другой браузер или использовать режим инкогнито. Пользователь в настоящее время вышел из веб-сайта.

Sitecore версия 8.0 + EXM

Кто-нибудь сталкивался с этой проблемой раньше?

1 ответ

Решение

Действительно, это из-за файлов cookie, сохраненных в предыдущих сеансах, спасибо Чами.

Ответ поддержки Sitecore был таким же:

Эта ошибка возникает, когда вы открываете несколько писем с несколькими contactId в одном браузере.

Но они не предложили никакого решения, кроме как очистить куки или использовать другой браузер.

Тем не менее, мы не хотим нарушать пользовательский опыт даже для таких редко возникающих случаев.

Итак, для обработки исключения мы обнаружили, что следующий конвейерный процессор должен быть переписан:

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

Вы можете посмотреть код пользовательского процессора здесь.

Другие вопросы по тегам