2016-09-22 5 views
0

私は を持っています。ニュースレターを購読するには、チェックボックスを使用してください。Sitecore 8.1 EXM 3.2:List Managerのリストにプログラムで連絡先を追加する方法は?

購読者がすでにサイトコアーの連絡先であるかどうかを確認し、このユーザーのデータを更新し、リストマネージャーのRecipientsListに連絡先を追加する必要があります。私はMongoDBの screen here でそれを見つけることができますが

var recipientCollectionRepository = RecipientCollectionRepository.GetDefaultInstance(); 
var list = recipientCollectionRepository.GetEditableRecipientCollection(listId); 

var contactRepository = new ContactRepository(); 
var contact = contactRepository.LoadContactReadOnly(ContactEmail); 
if (contact != null) 
{ 
    if (list != null) 
    { 
     var xdbContact = new XdbContactId(contact.ContactId); 
     if (!list.Contains(xdbContact, true).Value) 
     { 
      list.AddRecipient(xdbContact); 
     } 
    } 
} 
else 
{ 
    contact = contactRepository.CreateContact(Sitecore.Data.ID.NewID); 
    contact.Identifiers.AuthenticationLevel = Sitecore.Analytics.Model.AuthenticationLevel.None; 
    contact.Identifiers.Identifier = ContactEmail; 

    contact.Tags.Add("ContactLists",listId); 

    var contactEmailAddresses = contact.GetFacet<IContactEmailAddresses>("Emails"); 

    if (!contactEmailAddresses.Entries.Contains("Email")) 
    { 
     contactEmailAddresses.Entries.Create("Email").SmtpAddress = ContactEmail; 
     contactEmailAddresses.Preferred = "Email"; 
    } 
    var contactPersonalInfo = contact.GetFacet<IContactPersonalInfo>("Personal"); 
    contactPersonalInfo.FirstName = ContactFirstName; 
    contactPersonalInfo.Surname = ContactSurname; 

    if (list != null) 
    { 
    var xdbContact = new XdbContactId(contact.ContactId); 

    if (!list.Contains(xdbContact, true).Value) 
    { 
     list.AddRecipient(xdbContact); 
    } 

    contactRepository.SaveContact(contact, new ContactSaveOptions(true, null)); 
} 

}

は私がListManagerの中に私のリスト上でそれを見ることができません。

は、ここに私のコードです。

ListManagerのリストに新しい連絡先を表示するには、他に何が必要ですか?

+0

新しく追加された連絡先を再インデックスする時間が必要です – Anton

+0

はい、しばらくして追加の連絡先を見ることができますが、別の問題が発生しました:リストビューの受信者の数は0です –

答えて

0

セッション終了後に追加されます。

これは、MongoDBの呼び出しを制限するデフォルトの動作です。

また、EXM 3.2のバージョンでは、連絡先リストの受信者数に問題がありました。ホットフィックスについては、sitecoreのサポートに問い合わせる必要があります。またはEXM 3.3にアップグレードすることができます

関連する問題