Если вы не возражаете против небольшого расширения ECM, вы можете подключиться к DispatchNewsletter
Pipline.
Если вы добавите процессор, как показано ниже, вы можете динамически получать всех пользователей и добавлять их в список подписчиков. Вам просто нужно убедиться, что это срабатывает только в определенных сценариях, чтобы это не мешало основным функциям продукта.
public class GetUSASubscribers
{
public void Process(DispatchNewsletterArgs args)
{
if(CanProcessEmail(args))
{
var matches = UserManager.GetUsers().Where(usr => usr.Profile["Country"].Equals("USA")).ToList();
foreach (var username in matches)
{
if (User.Exists(username.Name))
{
var contact = Contact.FromName(username.LocalName);
args.Message.Subscribers.Add(contact);
args.Message.SubscribersNames.Add(contact.Name);
}
}
}
}
}
Вы можете зарегистрировать процессор следующим образом в своем Sitecore.EmailCampaign.config
<DispatchNewsletter>
<processor type="Sitecore.Modules.EmailCampaign.Core.Pipelines.DispatchNewsletter.CheckPreconditions, Sitecore.EmailCampaign" />
<processor type="YourClass, YourNamespace" />
........................
</DispatchNewsletter>
Чтобы сделать его более динамичным, вы можете добавить поле механизма правил к каждому элементу сообщения, чтобы определить, какие пользователи добавляются в список подписчиков. Таким образом, логика, например, где профиль пользователя ["страна"] равняется "США", может быть в поле правил.
Для справки, подробнее о настройке правил в Sitecore.
http://blog.horizontalintegration.com/2013/12/06/bending-the-sitecore-rules-field-to-your-will-with-sitecore-7-1-part-1/
person
Ian Graham
schedule
21.08.2015