0

我正在尝试对 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);
    }
}

似乎是从联系人或成员列表而不是订阅者列表设置发送。但我无法改变那里的顺序。任何人都可以对此有所了解吗?

4

1 回答 1

1

排队电子邮件的顺序基于args.Message.SubscribersNames属性(而不是args.Message.Subscribers)。

您仍然需要记住,电子邮件被安排为异步任务,因此您无法真正判断它们是否会按照排队的顺序进行处理。

您可以查看Sitecore.Modules.EmailCampaign.Core.Pipelines.DispatchNewsletter.SendMessage类的代码,以了解有关如何处理电子邮件的更多详细信息。

于 2013-01-15T09:24:30.300 回答