2013-01-15 33 views
0

我想對Sitecore ECM發送電子郵件的順序進行排序 - 我在DispatchNewsletters管道中添加了一個自定義處理器,位於sendEmails處理器之前。但我似乎無法改變電子郵件發送的順序。什麼我試圖做一個基本的例子:Sitecore ECM - 更改電子郵件發送訂單

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.SubscribersNames財產(不是args.Message.Subscribers)。

你還需要記住,這些電子郵件被安排爲異步任務,所以你不能真正知道它們是否將按照它們排隊的順序進行處理。

您可以檢查Sitecore.Modules.EmailCampaign.Core.Pipelines.DispatchNewsletter.SendMessage類的代碼的電子郵件是如何處理的更多細節。

相關問題