おれさまラボの実験ノート

実際に手を動かして理解を深めるブログ。

メール配送の仕組みを改めて整理してみた

はじめに

この前、後輩にメールについて教えている時に、O365(Exchange Online)を使ってる場合、メーラークラウド間の通信でどのプロトコルが使われているのか答えられなかったので調べてみました。

メール通信の仕組み

一般にメール送受信は、以下の概念図で説明されます。

5deae5e9-80fe-4090-9387-a8b5419740de

転載:Wireshark for analyzing issues and malicious emails in POP, IMAP, and SMTP [Tutorial] | Packt Hub

もうちょっと詳しく書くとこんな感じです。

スライド1

体系的にメールのお勉強をしたことがある人はMTAとかMDAとか名前がたくさんあってよくわからないなぁという経験をしたことがあると思います。実は、それほど難しいことは言っていないので、以下で簡単におさらいしておきます。

MUA → MTA

MTA → MTA

MRA → MUA

  • 通信プロトコルは POP/IMAP
  • MTA に届いたメールはメールボックス(メールデータを保管するためのデータベース)に格納される。
  • メールクライアントはメールサーバにメールデータを要求し、メールデータを受け取り、表示する。
  • POP を使うと、メールサーバからクライアントにデータが "移動"(サーバ上からメールデータが消える)される。
  • IMAP を使うとメールサーバからクライアントにデータが "コピー" される。

💡 補足:IMAP と POP の違い

IMAP POP
ポート番号 143 110
SSL利用時のポート番号 993(IMAPS) 995(POPS)
メールデータの保管場所 サーバ クライアント
操作性 サーバ上にデータがあるので、ネットワークを経由する必要があり、時間がかかる。 ローカルにデータがあるので速い。
検索速度 サーバ上にデータがあるので、ネットワークを経由する必要があり、時間がかかる傾向にある。 ローカルにデータがあるので速い傾向にある。
携帯性 複数端末から同じメールデータを参照できるので、携帯性は高い。 メールデータをダウンロードしたクライアント端末でしかメールデータを参照できない。他の端末でメールデータを参照したい場合は、何らかの方法で自分でコピーしないといけないので、携帯性はイマイチ。
オンライン/オフライン サーバ上にデータがあるので、ネットワークがつながっていないとメールデータを参照できない。 クライアント端末内にメールデータがあるので、ネットワークがつながっていなくてもメールデータを参照できる。
保存容量 サーバのディスクサイズに制限される。 クライアント端末のディスクサイズに制限される。

Outlook と Exchange Online 間の通信

さて、ようやく本題です。

Outlook と Exchange Online 間の通信プロトコルについて調べてみると、どうも MAPI over HTTP(S) というプロトコルが使われているようです。

2020-06-06 10_30_35

参考:MAPI over HTTP を使用すると、Outlook が正しく接続できない場合がある

MAPI とは

MAPI(Messaging Application Programmable Interface/マッピ)は POP や IMAP とは似て非なる通信プロトコルで、以下の特徴をもっています。

  • メールの送信/受信の双方を実現できる
  • 一般的な SMTP で使用される情報だけでなく、アドレス帳の利用なども可能で、メール利用にあたって必要なしくみが統合されている

参考:MAPI(Messaging API)とは - IT用語辞典 e-Words

MAPI はメールアプリのようなメッセージアプリケーションを、クライアント アプリケーションとサービス プロバイダに分けて定義します。

クライアント アプリケーション

ユーザー インターフェースを提供するアプリケーション。いわゆるメーラーのこと。

サービス プロバイダ

実際にメッセージの送受信などを行うメッセージ サービスにアクセスするためのインターフェースを提供するアプリケーションのこと。

サービス プロバイダはさらに以下の3つのコンポーネントから構成されます。

メッセージ ストア プロバイダ

メッセージなどのデータを保存するためのサービス プロバイダのこと。メールボックスの操作に使われるプロトコルと理解して良さそうです。

トランスポート プロバイダ

メッセージの送受信を司るサービス プロバイダのこと。

アドレス帳プロバイダ

名前の通りアドレス帳の機能を提供するサービスプロバイダのこと。

参考:MAPI について | Outlook 研究所

まとめ

ということで、概要図を Exchange Online と Outlook を使った構成に書き換えると以下の様な感じになります。

メール配送の仕組み

以上