はじめに
この前、後輩にメールについて教えている時に、O365(Exchange Online)を使ってる場合、メーラーとクラウド間の通信でどのプロトコルが使われているのか答えられなかったので調べてみました。
メール通信の仕組み
一般にメール送受信は、以下の概念図で説明されます。
転載:Wireshark for analyzing issues and malicious emails in POP, IMAP, and SMTP [Tutorial] | Packt Hub
もうちょっと詳しく書くとこんな感じです。
体系的にメールのお勉強をしたことがある人は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) というプロトコルが使われているようです。
参考:MAPI over HTTP を使用すると、Outlook が正しく接続できない場合がある
MAPI とは
MAPI(Messaging Application Programmable Interface/マッピ)は POP や IMAP とは似て非なる通信プロトコルで、以下の特徴をもっています。
- メールの送信/受信の双方を実現できる
- 一般的な SMTP で使用される情報だけでなく、アドレス帳の利用なども可能で、メール利用にあたって必要なしくみが統合されている
参考:MAPI(Messaging API)とは - IT用語辞典 e-Words
MAPI はメールアプリのようなメッセージアプリケーションを、クライアント アプリケーションとサービス プロバイダに分けて定義します。
クライアント アプリケーション:
ユーザー インターフェースを提供するアプリケーション。いわゆるメーラーのこと。
サービス プロバイダ:
実際にメッセージの送受信などを行うメッセージ サービスにアクセスするためのインターフェースを提供するアプリケーションのこと。
サービス プロバイダはさらに以下の3つのコンポーネントから構成されます。
メッセージ ストア プロバイダ:
メッセージなどのデータを保存するためのサービス プロバイダのこと。メールボックスの操作に使われるプロトコルと理解して良さそうです。
トランスポート プロバイダ:
メッセージの送受信を司るサービス プロバイダのこと。
アドレス帳プロバイダ:
名前の通りアドレス帳の機能を提供するサービスプロバイダのこと。
まとめ
ということで、概要図を Exchange Online と Outlook を使った構成に書き換えると以下の様な感じになります。
以上