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のリストに新しい連絡先を表示するには、他に何が必要ですか?
新しく追加された連絡先を再インデックスする時間が必要です – Anton
はい、しばらくして追加の連絡先を見ることができますが、別の問題が発生しました:リストビューの受信者の数は0です –