---
title: "EXMパイプライン"
slug: "the-exm-pipelines"
abstract: "EXMパイプラインやプロセッサの仕組みを理解することで、メッセージ生成や送信プロセスについての洞察が得られます。"
---
# EXMパイプライン

Email Experience Managerは、メッセージの生成と送信に主に2つのパイプラインを使用します。

-   [ディスパッチニュースレターのパイプライン](https://doc.sitecore.com/xp/ja/developers/exm/103/email-experience-manager/the-exm-pipelines.html#UUID-8ae36dcc-b951-c085-ddf5-d382931fa0f8_id__DispatchNewsletter_pipeline "DispatchNewsletter pipeline")
-   [SendEmailパイプライン](https://doc.sitecore.com/xp/ja/developers/exm/103/email-experience-manager/the-exm-pipelines.html#UUID-8ae36dcc-b951-c085-ddf5-d382931fa0f8_id__SendEmail_Pipeline "DispatchNewsletter pipeline for dedicated servers")

パイプラインはEXMの設定ファイルで定義されています。カスタムプロセッサを追加したり、デフォルトのプロセッサを置き換えたりしてパイプラインを拡張・カスタマイズできます。

EXMパイプラインおよびそれに含まれるプロセッサの仕組みを理解することで、メッセージ生成と送信プロセス全体を把握できます。異なるメッセージタイプでは、異なるプロセッサの利用が必要になる場合があります。

## ディスパッチニュースレターのパイプライン

DispatchNewsletterパイプラインはSitecore.EmailExperience.ContentManagementPrimary.configファイル内で定義されています。このパイプラインには以下のプロセッサが含まれます:

プロセッサ名

概要

CheckPreconditions

メールキャンペーンの送信開始に必要な条件がすべて満たされているかを確認します。

MoveToQueuing

メールキャンペーンをキューイング状態に移します。

DeployAnalytics

メールキャンペーン(キャンペーン、主題MVテスト)に関連する分析定義のワークフロー状態を「デプロイ済み」に変更します。

PublishDispatchItems

メッセージ項目とキャンペーン項目を公開します。

QueueMessage

マスターサーバーは、EXMマスターデータベースのDispatchQueueテーブルに受信者をキューイングし、セグメント化されたList Managerの連絡先ソースを使って以下のような連絡先をフィルタリングします:  
  

-   通信同意は取り消されました
-   市場に行かないでください
-   バウンス数は許容される最大数を超えています

MoveToProcessing

メールキャンペーンの状態が送信中に変更されます。

LaunchDedicatedServers

マスターサーバーは専用サーバー上で DispatchNewsletter パイプラインを起動します。これはパイプラインの簡略版であり、マスターサーバー専用のプロセッサは含まれていません。マスターサーバーと専用サーバーは同じデータベースを共有しています。

SendTestMessage

マスターサーバーはクイックテストを送信するために使われます

SendMessage

マスターサーバーと専用サーバーはメールキャンペーンを生成し送信します。  
  
プロセッサはEXMディスパッチデータベースから複数の連絡先を取得します。Sitecoreの EXM.DispatchBatchSize 設定で連絡先数を指定できます。EmailExperience.ContentManagement.configファイル。  
  
各サーバーは受信者リストにアクセスし、残りの受信者の中からメールキャンペーンを生成します。受信者がリストに残っている限り、このプロセスは続きます。  
  
各受信者に対して、プロセッサは以下の通りです:  
  

-   subscriber:assignedイベントを上げます。
-   メッセージに対応するページを要求します。
-   リクエストされたページのコンテキストユーザーとしてユーザーを設定します。セキュリティ制限が適用されます。
-   「メッセージが開かれました」という画像が追加されます。
-   SendEmailパイプラインの始まりです。

WaitForDispatchToFinish

少なくとも1台の専用ディスパッチサーバーを設定していて、マスターサーバーのディスパッチを無効にしたい場合は、このパイプラインプロセッサを有効にし、SendMessageパイプラインプロセッサを無効にする必要があります。  
  
パイプラインプロセッサの有効化・無効化は、入力/出力でコメントを付けることで行います。このプロセッサはデフォルトで無効化されています。

MoveToSent

メールキャンペーンの状態が送信済みに変更されます。

NotifyDispatchFinished

ディスパッチ処理が完了すると通知を送信します。

FinalizeDispatch

ラウンドロビン方式のMVテストプロセスの内部変数をクリーンアップし、SMTPサーバーへの残りの接続をクローズします。

### 専用サーバー向けのDispatchNewsletterパイプライン

専用ディスパッチサーバー向けにカスタマイズされた簡略版のDispatchNewsletterパイプラインがSitecore.EmailExperience.EmailProcessing.configファイル内に定義されています。このパイプラインのバージョンには以下のプロセッサのみが含まれています:

-   CheckPreconditions
-   SendMessage
-   FinalizeDispatch

## SendEmailパイプライン

SendMessageプロセッサは送信されるすべてのメールのパイプラインSendEmailを開始します。

SendEmailパイプラインはSitecore.EmailExperience.ContentManagement.configファイル内で定義されています。このパイプラインには以下のプロセッサが含まれます:

**プロセッサ名**

**概要**

FillEmail

パーソナライズされた受信者データを使ってメッセージを生成します。

SendEmail

メールキャンペーンをMTAに送る。

CreateTask

メール送信ページイベントとのやり取りを追加するタスクを作成します。

Sleep

各メール送信後に現在のサーバーでEXMがどれくらいの時間停止するかの制御。ミリ秒(ms)で指定されます。  
  
マルチサーバー環境では、このプロセッサを使ってサーバー間の負荷を分散させることができます。例えば、専用サーバーにプライマリCMサーバーの4倍のメールを送信させたい場合は、スリープ設定で以下の値を指定します。  
  

-   プライマリCMサーバーでは200msです。サーバーはメール送信後200msの間一時停止します。
-   専用サーバーでは50秒です。サーバーはメール送信後50msの一時停止を行います。

  
  
さらに、1000通のメールを送信すると、プライマリCMサーバーは約200通(20%)、専用サーバーは約800通(80%)のメールを送信します。