Sitecore ECM - Изменить порядок рассылки электронной почты

Я пытаюсь отсортировать порядок, в котором Sitecore ECM отправляет электронные письма - я добавил собственный конвейер в конвейер DispatchNewsletters, прямо перед процессором sendEmails. Но я не могу изменить порядок отправки электронных писем. Основной пример того, что я пытаюсь сделать:

 public void Process(DispatchNewsletterArgs args)
    {
        IOrderedEnumerable<Contact> orderedSubscribers = args.Message.Subscribers.OrderBy(x => x.Profile.UserName.Split('_')[1]);
        List<Contact> orderedList = orderedSubscribers.ToList();
        args.Message.Subscribers.Clear();

        //Add the sorted subscriber list. 
        args.Message.Subscribers.AddRange(orderedList);
    }
}

Похоже, что рассылка настраивается из списков контактов или участников, а не из списка подписчиков. Но я не могу изменить там порядок. Может кто-нибудь пролить некоторый свет на это?

1 ответ

Решение

Порядок очереди электронных писем основан на свойстве args.Message.SubscribeersNames (не на args.Message.Subscribeers).

Тем не менее, вы должны помнить, что электронные письма планируются как асинхронные задачи, поэтому вы не можете точно сказать, будут ли они обрабатываться в том же порядке, в котором они находятся в очереди.

Вы можете проверить код класса Sitecore.Modules.EmailCampaign.Core.Pipelines.DispatchNewsletter.SendMessage для получения дополнительной информации о том, как обрабатываются электронные письма.

Другие вопросы по тегам