2016-06-01 6 views
3

Я пытаюсь добавить существующего пользователя sitecore в список получателей. Я создал пустой список получателей с помощью диспетчера списков. Ниже мой код.Sitecore 8.1 EXM Не удается добавить пользователей Extranet Sitecore в список получателей

RecipientId recipient = new SitecoreUserName(userProfile.UserName); 
    var listRepository = new ListManagerCollectionRepository(); 
     var newsRecipientList = listRepository.GetEditableRecipientCollection("{list-id}"); 
    if (!newsRecipientList.Contains(recipient).Value) 
    { 
      newsRecipientList.AddRecipient(recipient); 
    } 

Однако, когда я вижу список получателей, он всегда пуст. Пожалуйста помоги.

ответ

3

Менеджер по работе с электронной почтой Sitecore работает со списком менеджеров. Список Менеджер работает с Контакты организаций, а не Пользователи объектов. Вот почему пользователь может присутствовать в Sitecore, но у вас могут быть проблемы с добавлением его в список: контакт может отсутствовать. Также я не уверен, что RecipientId для получения списка можно было получить от SitecoreUserName, как и в вашем примере.

Другая проблема, которая может вызвать эту проблему: Sitecore пишет контакты в базу данных не сразу. У вас может быть контакт в памяти (например, Tracker.Current.Session.Contact), но он может быть доступен для других только после окончания сеанса, когда он будет добавлен в базу данных и разблокирован.

Вы можете решить проблему, используя Brian Pedersen approach. Меня устраивает.

var repository = new ExtendedContactRepository(); 
var contact = Repository.GetOrCreateContact(userEmail); 
recipientList.AddRecipient(contact.ContactId.ToID()); 
+0

Этот код отлично работает в среде, где оба cM и CD одинаковы. Но бросание Исключения в масштабированной среде. Его невозможно получить список получателей. newsRecipientList = listRepository.GetEditableRecipientCollection ("{my id}"); О какой причине вы можете думать? –

+0

@MohitDharmadhikari Трудно сказать без подробностей об исключении. Вы настроили «default-cd-cluster»? – Anton

+0

yes Я настроил кластер по умолчанию-cd «как имя сервера IIS (то есть имя машины)» вместо домена веб-сайта. Это хорошо или мне нужно настроить его другим способом. –

 Смежные вопросы

  • Нет связанных вопросов^_^