【図解】初心者にも分かるメールの仕組み(SMTP、POP、IMAPの違い)

スポンサーリンク
スポンサーリンク

メールの一般的な構成例

メールシステムの一般的な構成例として、taro@example.com から hanako@gmail.com にメールを送信するときの例を以下に示します。

SMTPの機能と守備範囲

SMTPはメール送信プロトコルです。守備範囲は図の赤背景の箇所で、メール送信元PC(メーラ)からメール宛先(メールスプールサーバ)まで一気通貫です。SMTPでは一般に、いくつかのSMTPサーバを経由しますが、そのたびにTCPコネクションを確立し、リレーしていきます。このことをSMTPリレーと呼びます。

POP/IMAPの機能と守備範囲、POPとIMAPの違い

POP/IMAPはメール受信プロトコルです。メールを読みたいPC(メーラ)からメールスプールサーバに対して接続します。守備範囲は図の青背景の箇所です。

POPとIMAPの違いは、POPは単純なダウンロードしかできないのに対し、IMAPではディレクトリ操作などが可能なコマンドが用意されていることです。

例えばメールの振り分け機能を使ってフォルダを分ける設定をしている場合、どのPCからIMAPアクセスしても同じフォルダ環境でメール受信が可能になります。なのでWebメールの仕組みでよく使われます。

よくある勘違いで、『POPではPCにダウンロードしたメールはメールサーバから消えるけどIMAPでは消えない』と説明する人がいますが、これは間違いです

POPでもダウンロード時にメールサーバのメールを消さない設定もできますし、逆にIMAPでもダウンロード時にメールを削除する設定もあります。

スポンサーリンク

メール送信フロー

MUA(メーラ等)での動作

まずメーラで作成したメールを「送信ボタン」で押すと、メーラに設定された「SMTPサーバ」(例えばgmail.comの場合はsmtp.gmail.com)に対し、SMTPでメール送信コマンドとともにメール本文や添付ファイル情報を送ります

メーラの設定は、Outlook2013だと以下の青枠の箇所で設定します。

スポンサーリンク

MSA(postfix等)での動作

最近のメールシステムではSMTP-AUTHという認証機能が有効になっていますので、OpenLDAP等の認証サーバに、メーラで設定された「ID/パスワード」情報を認証しに行きます。その結果OKであればそのメールを受け入れ、メーラにはSMTPでのコマンド成功を意味する"250"というレスポンスコードが返ってきます。これを受けてメーラは「送信完了」と認識します。(MUAとMSAとの間のSMTPのTCPコネクションはここでいったん終了)

なお、MSAが無い(SMTP-AUTHが無いなどの)場合は、MUAとMTAの間で、上記やり取りの中で認証部分だけを無くした動作を行います。

MTA(postfix等)での動作

MTAではメールを受信すると、まず宛先メールアドレスの@以降のみを確認し、その送り先メールサーバのIPアドレスを確認します。今回の例の送り先は@gmail.comですが、例えばこれを手動で確認しようとすると、コマンドプロンプト(Windowsキー+R ⇒ cmdと入力し Enter で起動)で以下のように打ちます。

nslookup -type=mx gmail.com

すると以下のように表示されます。

スポンサーリンク

"mail exchanger =" の後に表示されているホスト名MXレコード結果で、そのホスト名に対するAレコード(IPアドレス情報)も一緒に返ってきます。ここで表示されたIPアドレスのどれか宛にSMTP通信を行います。

これは間にMTAが何台挟まっていようと、全てのMTAでこのようにMXレコードを確認していき、そのたびにTCPコネクション、SMTPセッションを張り、終了したらコネクション・セッションを閉じる、といった動作でメールをリレーしていきます。

MDA(postfix等)での動作

MDAはメールの終着地(メールスプール)において、@以前(今回で言えば hanako)を見て、どのディレクトリ(フォルダ)に格納すればよいかを確認し、配置します。

具体的にはLinuxであればLinuxアカウントやLDAPアカウントを確認し、MDA(postfix)の設定に定められたディレクトリに格納します。

MRA(dovecotやcourier-imap等)での動作

メーラからメールを受信する際には、メーラからMRAへ、POPやIMAPを使って接続しに行きます。認証が必須なので、大抵は OpenLDAP を使ってIDパスワード情報を確認し、結果がOKであればメールを閲覧させます。

メーラの設定で 「POPサーバ」 や 「IMAPサーバ」 でIPアドレス、もしくはFQDNを指定しているものです。

メーラの設定は、Outlook2013だと以下の赤枠の箇所です。

スポンサーリンク

メールシステム用語

以下にメールシステム用語を整理します。

MUA

Mail User Agent のこと。OutlookやThunderBird、Becky!などメールソフト(メーラ)のことを指します。

MTA

Mail Transfer Agent のこと。SMTPによるメールリレー(メール転送)を行うサーバソフトを指します。Linuxのpostfixが多く、次いでWindowsの Exchangeがよく使われています。

MDA

Mail Delivery Agent のこと。これは、自分が管理するドメインのメールが来た時に、そのサーバ内にある各ユーザのメールBOXにメールを配送する役割です。

例えば@example.comというドメインを管理している場合、taro@example.com宛のメールが来た時にtaroというユーザのメールBOX(具体的にはフォルダ内にあるメールファイル)に受信したメールを格納します。

このMDAはMTAと兼務するものが多く、大抵はMTAと同様にpostfix、次いでExchangeとなります。

MSA

Message Submission Agent のこと。昔はSMTPは認証無しでフリーに送信できていたのですが、SPAMメールが流行した際に、勝手に送信できるのはまずかろうとなり、認証する仕組みを設けました。その役割がMSAです。

初期はPOP before SMTP という認証方式(SMTPで送信する直前に、同じメールアドレスでPOP認証を行わせる)が使われていましたが、最近は SMTP-AUTHという認証方式が主流です。

このMSAもMDAと同様、MTAと兼務し、postfixとExchangeがよく使われます。メーラの設定で「SMTPサーバ」としてIPアドレス、もしくはFQDNを指定しているものです。

MRA

Mail Retrieval Agent のこと。メーラ(MUA)がPOPやIMAPを使ってメールを取得しに行くサーバのことです。

このMRAは Linuxでは Dovecot(読み方:ダブコット)や Courier-imap(読み方:クーリエ アイマップ)が、WindowsではExchangeがよく使われます。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク