0
뉴스 레터를 구독하려면 확인란이있는 ContactForm이 있습니다.Sitecore 8.1 EXM 3.2 : 프로그램 방식으로 목록 관리자의 목록에 연락처를 추가하는 방법은 무엇입니까?
구독자가 이미 sitecore 연락처인지 확인하고이 사람의 데이터를 업데이트 한 다음 목록 관리자의 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입니다. –