0

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);
    }
}

送信は、サブスクライバーリストではなく、連絡先リストまたはメンバーリストから設定されているようです。しかし、私はそこで順序を変更することはできません。誰かがこれに光を当てることができますか?

4

1 に答える 1

1

電子メールをキューに入れる順序は、( args.Message.Subscribersではなく) args.Message.SubscribersNamesプロパティに基づいています。

それでも、電子メールは非同期タスクとしてスケジュールされているため、キューに入れられたのと同じ順序で処理されるかどうかは実際にはわかりません。

電子メールの処理方法の詳細については、 Sitecore.Modules.EmailCampaign.Core.Pipelines.DispatchNewsletter.SendMessageクラスのコードを確認できます。

于 2013-01-15T09:24:30.300 に答える