Sitecore ECM - 更改电子邮件发送的顺序

时间:2013-01-15 02:34:30

标签: sitecore sitecore6 sitecore-ecm

我正在尝试对Sitecore ECM发送电子邮件的顺序进行排序 - 我已经在sendEmails处理器之前向DispatchNewsletters管道添加了一个自定义处理器。但我似乎无法改变发送电子邮件的顺序。我想要做的一个基本的例子:

 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 个答案:

答案 0 :(得分:1)

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

您还需要记住,电子邮件被安排为异步任务,因此您无法确定它们是否按照排队的顺序进行处理。

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