2

重複する電子メール アドレスへの送信を無効にする設定が Sitecore ECM にあるかどうかは誰にもわかりません (Sitecore 6.5 rev 706 ECM 1.3.2 rev 120424)。開発ドキュメントには言及がありませんでしたが、それは一般的な要件のようです。それとも、送信パイプラインをオーバーライドして、これをカスタム機能として実装する必要がありますか?

乾杯

4

1 に答える 1

2

送信パイプラインをオーバーライドする代わりに、独自のステップを DispatchNewsletter パイプラインに追加できます。

そのパイプラインでは、すべての受信者にアクセスでき、それらをフィルタリングできます。

ここに動作するはずのコードがいくつかありますが、テストしていません

public void Process(DispatchNewsletterArgs args)
{
    // Lets not filter emails from engagement automation
    TargetAudienceBase targetAudience = args.Message.TargetAudience;

    if (targetAudience.Name != "Engagement Automation")
    {
        // Cleas who gets the email
        args.Message.SubscribersNames.Clear();


        // holds list of email address, and contancts.
        var emailSendingTo = new Dictionary<string, Contact>();


        // Filter all recipients from the targetAudience
        foreach (Contact contact in targetAudience.OptInList.Contacts.Except(targetAudience.OptOutList.Contacts))
        {
            if (!emailSendingTo.ContainsKey(contact.InnerUser.Profile.Email))
            {
                emailSendingTo.Add(contact.InnerUser.Profile.Email, contact);
            }
        }

        // Add all the names to the subscriber list (domain/username)
        foreach (KeyValuePair<string, Contact> keyValuePair in emailSendingTo)
        {
            args.Message.SubscribersNames.Add(keyValuePair.Value.Name);
        }

    }
}

そのステップを DeployAnalytics の前に挿入すると、分析が正常に機能します

于 2012-11-26T10:05:57.530 に答える