次の方法で共有


Microsoft Graph のメール送信プロセスの概要

Microsoft Graph では、 転送返信replyAll、または sendMail の各メソッドによって、同じ呼び出しで電子メール メッセージが作成され、送信されます。 この記事では、通常、メールの送信 API 呼び出しを処理してメールを送信する方法について説明します。 ほとんどの手順 (手順 2 から 7) は、メソッドの応答が返された後に行われます。

1. 送信者のメールボックスに新しいメッセージを作成する

Outlook は、送信者の下書きフォルダーに新しいメッセージを作成し、メッセージの内容、受信者、添付ファイルを JSON 要求から下書きメッセージにコピーして保存します。 成功した場合、メソッドは HTTP 応答 202 Accepted 状態コードを返します。

送信者が MIME コンテンツを指定した場合、Exchange Online は新しい下書きメッセージの 1 つのプロパティにコピーします。 次に、Exchange Online は MIME コンテンツを解析し、関連するコンテンツをメッセージ プロパティと受信者と添付ファイル テーブルにコピーします。 完了すると、メソッドは状態コードを 202 Accepted 返します。

この手順は、送信者のメールボックスがいっぱいになっている、送信者のサーバーへのネットワーク接続がダウンしているなどの理由で失敗する可能性があります。 メソッドが失敗した場合は、それに応じて 4xx または 5xx の状態コードが返されます。

手順 1 が完了すると、アプリと Microsoft Graph との直接のやり取りは終了します。

2. 新しい送信メッセージをトランスポート サービスに通知する

Exchange Online は、新しいメッセージがピックアップ可能であることをトランスポート サービスに通知します。

3. 送信メッセージをトランスポート パイプラインにコピーする

トランスポート プロセスは、送信者のメールボックスからメッセージ コンテンツを読み取り、MIME 形式に変換して、トランスポート パイプラインに格納します。 送信者が MIME コンテンツを指定した場合、トランスポート プロセスは MIME コンテンツを多かれ少なかれそのままコピーします。 それ以外の場合、トランスポート プロセスはメッセージ プロパティをシリアル化して MIME コンテンツを構築します。

手順 3 で失敗した場合、トランスポート プロセスによって配信不能レポート メッセージが作成され、送信者の受信トレイに配置されます。

4. 元のメッセージを [送信済みアイテム] フォルダーに移動する

これがすべて成功すると、トランスポートはストアに呼び戻し、メッセージの責任を引き受けます。 これに対して、Exchange ストアはメッセージを更新し、[下書き] フォルダーから [送信済みアイテム] フォルダーに移動します。 (オプションのメッセージ プロパティによっては、別のフォルダーに移動したり、代わりにメッセージを削除したりする場合があります)。

5. ポリシーの評価とルーティングを実行する

トランスポートによって実行される次の手順には、ポリシーの適用、ルーティング、およびネクスト ホップ配信が含まれます。 トランスポートは、受信者の電子メール アドレスを調べ、最初のルーティング ホップの内容に従ってバケット化します。 トランスポートは、この時点で無効な受信者アドレスを検出します。この時点では、配信不能メールが送信者に報告されます。 その後、トランスポートはテナント管理者によって構成されたポリシーを適用します。 このようなポリシーは、そのコンテンツ、ストア コピーなどに基づいてメッセージを拒否する場合があります。 ポリシーを適用した後、トランスポート ファンはメッセージのコピーを各ネクスト ホップ宛先に送信します。 トランスポート フローの詳細については、「 メール フローとトランスポート パイプライン」を参照してください。

6. 受信者にメッセージを配信する

Exchange Online トランスポートは、すべての受信者への最終的な配信に対して責任を負う場合と、責任を負わない場合があります。 これは、これらの受信者が Exchange Online メールボックスを持っているかどうかによって異なります。

7. 送信者にレポート メッセージを配信する

配信レポートを生成し、それに応じて送信者に送信するサービスがいくつかあります。

  • 責任あるトランスポート コンポーネント (Exchange Online または Exchange Online 以外のコンポーネント) が、1 つ以上の受信者のメール アドレスが配信不能であると判断すると、コンポーネントは配信不能レポートを生成します。
  • 同時に、転送コンポーネントは、送信者が明示的に要求した場合に配信レポートを生成します。
  • 受信者の電子メール サービスまたは電子メール クライアントは、読み取りおよび読み取り以外の通知を生成するか、まったく生成しない場合があります。

レポート メッセージの詳細については、「 Exchange Server の DSN と NDR」を参照してください

別の呼び出しで下書きを作成して送信する Microsoft Graph API: