Email Experience ManagerクライアントAPI
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Email Experience Manager ClientAPIServiceクラスSitecore.EmailCampaign.Cd.Services.ClientAPIServiceは、EXMが購読・解約を処理するために使われています。List Manager内のリストの購読管理や自動メール送信に利用できます。
Email Experience ManagerクライアントAPI(ClientApiService)はIOCコンテナに登録されているため、クラスのコンストラクタに注入するか、例えばServiceLocatorを使うことができます。
IClientApiService _clientApiService;public MyConstructor(IClientApiService clientApiService) { _clientApiService = clientApiService; }
または
IClientApiService clientApiService = ServiceLocator.ServiceProvider.GetService< IClientApiService >()
ClientAPIService APIはCDロールにのみ登録されます。また、CDサーバーはList Managerリストから連絡先を追加・削除したり、EXMキャンペーンを送信する設定がされていません。したがって、スケールドサーバー環境で作業する場合は、ClientAPIServiceリクエストを使ってその作業をCMサーバーに委任する必要があります。
以下の図はこの過程を示しています:

以下の公開方法が利用可能IClientApiService:
これらの手法は、操作を行うためにContactIdentifierを用いて、操作したい連絡先を特定します。詳細については、Contact identifiersおよびIdentifying Contactを参照してください。
最初の公開手法は以下の表に説明されています。
- 名前:: SendAutomatedMessage
- **説明:**このメソッドは、自動メールキャンペーン(automatedMessage.MessageId)を担当者(automatedMessage.ContactIdentifier)に送信し、カスタムトークンのセットとターゲット言語、さらにディスパッチ時にメールキャンペーンのレンダリングに使用されるカスタムクエリ文字列パラメータのセットを指定するオプションを提供します。CustomQueryStringParametersプロパティを使ってAutomatedMessageクラスを拡張し、追加のクエリ文字列パラメータ(例<string、string> CustomQueryStringParameters)をサポートします。WebPageMailの本文リンクはGenerateBodyLinkパイプラインで生成されます。このパイプラインは、EXMがメールキャンペーンの内容をダウンロードするためのリンクを生成する際にメール発送中に実行されます。パイプラインはベースURLを生成し、デフォルトのクエリ文字列パラメータを追加し、さらにカスタムクエリ文字列パラメータを追加します。例えば.cshtmlに注入されたコードは以下の通りです:
http://XXXX/?sc\_itemid=XXX&sc\_lang=XXX&sc\_pd\_view=XXX&yourParam=someValue& ec_eq=XXX
@{ string customQueryString = Request.Params"yourParam"; if (!string.IsNullOrWhiteSpace(customQueryString)) {
- 使用例::
void SendAutomatedMessage(AutomatedMessage automatedMessage)
2つ目の公開手法は以下の表に説明されています。
名前:
UpdateListサブスクリプション
説明:
このメソッドにより、連絡先のリストサブスクリプションを更新できます。メッセージ上の操作プロパティ(message.ListSubscribeOperation)はどの操作を取るべきかを決定し、以下のいずれかの値に設定できます。
デフォルトでは、EXMは連絡先の解約時に自動的にイベントを登録します。しかし、これは ClientApiServiceを用いても、解約インタラクションデータ(message.UnsubscribeInteractionData)を定義することで実現できます。これを行うには、以下のパラメータを設定します。
- メッセージ。MessageId
- メッセージ。InstanceId
- メッセージ。ManagerRootId
- メッセージ。UnsubscribeInteractionData.MessageLanguage
- メッセージ。UnsubscribeInteractionData.TestValueIndex
- メッセージ。UnsubscribeInteractionData.EmailAddressHistoryEntryId: EmailAddressHistoryの側面にあるメールアドレスのID。
運営:
購読
この操作は、キャンペーン上で定義された最初の非セグメント化されたincludeリスト(message.MessageId)に連絡先(message.ContactIdentifier)を追加します。message.RequireSubscriptionConfirmationが設定されている場合、EXM連絡先に確認メールを送信し、リストに追加する前に購読を確認するよう促します。さらに、その連絡先はデフォルトのグローバルオプトアウトリストから除外されます。
> [!注]
> SubscribeEventパイプラインを実装することでこの機能を拡張できます。
購読解除
この操作は、メールキャンペーンに含まれるすべての連絡先リストから連絡先(message.ContactIdentifier)を削除します(message.MessageId)。連絡先がリストから正常に解除され、管理者ルートで Send解除 確認が有効EXM、 StandardMessages.UnsubscribeNotification設定で定義された通知を連絡先に送信します。連絡先が含まれる連絡先リストから削除できなかったり、どのリストにも表示されない場合、その連絡先はマネージャールート上で定義されたグローバルオプトアウトリストに追加されます。この動作はパイプライン UnsubscribeFromList上書き可能です。
> [!注]
> この機能を拡張するには、 UnsubscribeFromList パイプラインを修正できます。
すべての購読解除
この操作は、メールキャンペーンのマネージャールート(unsubscribeMessage.MessageId)に定義されたグローバルオプトアウトリストに連絡先(message.ContactIdentifier)を追加します。
> [!注]
> UnsubscribeFromAllEventパイプラインを実装すれば、この機能を拡張できます。
AddToList
この操作は接触者リスト(message.ContactIdentifier)を接点リスト(message.ListId)に追加します。
リストから削除
この操作は接点リスト(message.ListId)から接点(message.ContactIdentifier)を除去します。