getCaseIdFromEmailHeaders(headers)
署名
public static Id getCaseIdFromEmailHeaders(List<Messaging.InboundEmail.Header> headers)
パラメーター
- headers
- 型: List<Messaging.InboundEmail.Header>
戻り値
型: Id
使用方法
カスタムコード内のメールスレッドおよびケース間で一致項目がないかを検索する動作を最適化するために、このメソッドと EmailMessages.getRecordIdFromEmail を使用して、トークンベーススレッドとヘッダーベーススレッドを組み合わせて実装することをお勧めします。
参照 ID スレッドから移行する場合は、Cases.getCaseIdFromEmailThreadId を Cases.getCaseIdFromEmailHeaders と EmailMessages.getRecordIdFromEmail の組み合わせに置き換えることをお勧めします。ヘッダーベーススレッドのみを実装する場合は、Cases.getCaseIdFromEmailThreadId を Cases.getCaseIdFromEmailHeaders に置き換えます。
headers 引数は、RFC 2822 に基づいて In-Reply-To ヘッダーと References ヘッダーの値を使用して一致するケース ID を見つけるために使用されます。メール-to-ケースで In-Reply-To または References ヘッダーが一致するメールが見つからない場合は、受信メールで Thread-Index と呼ばれる Outlook 固有のヘッダーもチェックされます。このヘッダーの最初の 22 バイトでスレッドが一意に識別されます。メール-to-ケースで受信メールの Thread-Index ヘッダーが検出された場合、EmailMessage レコードの ClientThreadIdentifier 項目で一致する情報が検索されます。一致が見つかった場合、顧客の返信メールが関連ケースにリンクされます。
通常、この方法は、Apex コードを使用して受信メールを独自に処理できるようにするためにメールサービスで使用されます。
例
現在メールサービスでヘッダーベーススレッドを実装している場合は、トークンベーススレッドとヘッダーベーススレッドを組み合わせた Lightning スレッドを使用することをお勧めします。ヘッダーベーススレッドで作業を続行するには、MessagedIdentifier 項目が正しく設定された EmailMessage レコードとしてメールを保存します。Lightning スレッドでは、スレッドトークンを主要なスレッド方式として使用し、ヘッダーベーススレッドをフォールバックとして利用することも、その逆を行うこともできます。
次の例では、スレッドトークンを利用して、ヘッダーベーススレッドをフォールバックとして使用しています。