---
title: "購読解除のオプション"
slug: "the-unsubscribe-options"
abstract: "デフォルトのメールキャンペーンテンプレートには、受信者が今後のメールキャンペーンの購読解除を可能にするリンクが含まれています。"
---
# 購読解除のオプション

EXMのデフォルトのメールキャンペーンテンプレートを使用すると、送信するメールには受信者が今後のメールキャンペーンの購読解除を可能にする2つのリンクが含まれています。

-   *Unsubscribe*– 連絡先は現在のメールキャンペーンの購読停止を表明します。これはコンテンツ配信サーバーの/sitecore modules/Web/EXM/Unsubscribe.aspxを示しています。
-   *すべてのメールキャンペーンから購読解除*する – 連絡先がすべてのメールキャンペーンの購読解除をします。これはコンテンツ配信サーバーのご/sitecore modules/Web/EXM/UnsubscribeFromAll.aspxを指しています。

> !注メール内の実際のリンクは /sitecore modules/Web/EXM/RedirectUrlPage.aspx。

連絡先がメールの購読解除リンクをクリックすると、以下のようなことが起こります。

-   *httpRequestBegin*パイプラインでは、EXM*OnHttpRequestBegin*パイプラインプロセッサを追加し、以下のタスクを実行します。
    -   クエリ文字列を復号し検証します。
    -   クエリ文字列からメッセージIDと連絡先識別子を取得します。
    -   メッセージや連絡先、その他のデータへの参照を保存し、リクエストの全期間中ずっと使えるようにSitecore.Modules.EmailCampaign.Core.ExmContextします。
-   RedirectUrlPage.aspxはUnsubscribe.aspx or UnsubscribeFromAll.aspxにリダイレクトするRedirectUrlパイプラインを実行します。
-   Unsubcribe.aspxファイルとUnsubscribeFromAll.aspxファイルは以下の役割を果たします:
    -   *ExmContext*を使って、依頼が有効であること、例えば依頼に連絡先IDやメッセージIDがあるかどうかを検証します。
        
    -   メール*配信停止*イベントに登録してください。
        
    -   連絡先のサブスクリプションを確認する:もし連絡先がすでにグローバルオプトアウトリストに含まれているか、含まれるリストに加入していなければ、[EXMはマネージャールート](https://doc.sitecore.com/xp/ja/developers/exm/100/email-experience-manager/create-a-new-manager-root.html "Create a new manager root")に定義された*Already Unsubscribed Page*にリダイレクトします。
        
        > !注連絡先が購読解除が必要なリストに載っている場合、EXMすぐには解除しません。代わりに、*UnsubscribeMessagesBus*メッセージバスを通じてContent Management (CM)サーバーに解除タスクを委譲します。マネージャールートに*最終確認ページ*が指定されている場合、EXMはそのページに連絡先をリダイレクトします。そうでなければ、連絡先をウェブサイトのトップページにリダイレクトします。
        

CMサーバーが解約をどう扱うかは、連絡先が現在のキャンペーンのみで解約するか、全キャンペーンから解約するかによって異なります。

###### 現在のキャンペーンからの購読解除

CMサーバーはSitecore.EmailCampaign.Cm.SubscriptionManager.Unsubscribe(ContactIdentifier contactIdentifier, Guid messageId, bool fromAll)メソッドを呼び出します。このメソッド:

-   連絡先とメッセージ項目を読み込みます。
    
-   メールキャンペーンに含まれる連絡先リストから連絡先を解読し、各解読ごとにEXMが解約通知を送るようにします。その後、UnsubscribeFromListパイプラインに連絡します。
    
    > !注もし連絡先が含まれるリストから解約できない場合、または含まれるリストがセグメントリストである場合、その方法はその連絡先をグローバルなオプトアウトリストに追加します。
    

###### すべてのキャンペーンからの購読解除

CMサーバーはSitecore.EmailCampaign.Cm.SubscriptionManager.UnsubscribeFromAll(Contact contact, ManagerRoot managerRoot)メソッドを呼び出します。このメソッド:

-   連絡先とメッセージ項目を読み込みます。
-   メッセージ項目に関連するマネージャールート上で定義されたグローバルオプトアウトリストに連絡先を追加します。
-   UnsubscribeFromAllEventパイプラインに電話する。