メール送信用のプロトコルにはSMTP、メール受信用のプロトコルにはPOP3、IMAP4、もしくはHTTP(Webメール)を用いるのが一般的。メーラをMUA(Mail User Agent)、電子メール配送ソフトウェアをMTA(Mail Transfer Agent)とも呼ぶ。代表的なMTAにはsendmail、qmail, postfiなどがある。
SMTP
SMTPは1982年に登場。今ではSMTPを拡張した拡張SMTP(SMTP Service Extensions)が利用されている。まず拡張SMTPで配信を試み、失敗するとSMTPを用いて配信する。SMTP、拡張SMTPともにTCP25番ポートを用いる。
POP3
POP3では、受信端末からPOPサーバへTCPコネクションを確立し、メールボックスにあるメールの取得/削除を行うプロトコル。POP3はTCP110番ポートを用いる。
SMTP, POP3を用いたメール送受信の流れ
以下は、x@a.co.jpからy@b.co.jpにメールを送る例。
![]() |
SMTP, POP3を使用したメール送受信の流れ |
- ①x@a.co.jpのメーラは、SMTPを用いてサーバAにメールを転送する
- ②サーバAでメールはキューに溜まり、一定時間ごとに処理される。サーバAは、宛先メールアドレスのドメイン名「b.co.jp」をもとに、次にメールを転送するホストを決定する。サーバAはローカルDNSサーバに対し、b.co.jpドメインのメールサーバを問い合わせる
- ③a.co.jpのDNSサーバは、b.co.jpドメインのDNSサーバに対し、同ドメインのメールサーバを問い合わせる。MXレコードにはメールサーバのホスト名が、AレコードにはそのIPアドレスが登録されているので、サーバBのIPアドレスが返答される
- ④サーバAはSMTPを用いてサーバBにメールを転送する。サーバBは、受け取ったメールをy@b.co.jpのメールボックスに保存する
- ⑤受信者は、POP3を用いてサーバBからメールを受信し、メールボックスからの削除を要求する
宛先に指定されたメールアドレスが存在しない場合、送信元のMUAは配信不能の通知メールを受け取る。
![]() |
配送不能通知の流れ |
IMAP4
IMAP4がPOP3と大きく異なるのは、受信メールをサーバ上で管理する点。POP3では実現できないきめ細かな管理を実現できる。IMAP4はTCP143番ポートを用いる
Webメール
メーラでなくWebブラウザを使ってメールのやり取りを行う。WebブラウザとWebサーバ間はHTTPでやり取りを行い、WebサーバはSMTPサーバの役割も兼ねる。受信者はWebブラウザを用いてWebページを取得することで、メールの内容を閲覧できる
![]() |
Webメールを使ったメール送受信の流れ |
メールヘッダ
以下は、代表的なメールヘッダのフィールド
フィールド | 意味 | 付加するマシン | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Return-Path | エンベロープFromを格納する。最後に処理したMTAが追加する | 最後のMTA | ||||||||||||
Received | MTAの配信の記録。幾つかのパラメタと配信した日時を格納する。
|
MTA | ||||||||||||
Message-ID | メッセージの識別子 | MUA | ||||||||||||
Date | メッセージの作成日時 | MUA | ||||||||||||
From | メッセージの送信元 | MUA | ||||||||||||
To | メッセージの宛先 | MUA | ||||||||||||
Cc | メッセージの二次的な宛先 | |||||||||||||
Bcc | メッセージの二次的な宛先。BccフィールドはMTAによって削除されるので、受信者にはBccの宛先が隠蔽される | MUA | ||||||||||||
Reply-To | メッセージの返信先。これが省略されると、Fromが返信先になる。差出人と異なる返信先を指定するときに使用する | MUA | ||||||||||||
Subject | メッセージの件名 | MUA | ||||||||||||
In-Reply-To | メッセージが返信している元のMessage-ID | MUA |
Received行とReturn-Path行はトレース情報と呼ばれ、メールを転送する際、ホストのMTAがメールヘッダの先頭に挿入する。以下はMTAがトレース情報を追加する例。サーバBに受信者のメールボックスがあり、ここのMTAがReturn-Path行を先頭に追加する。
![]() |
MTAが経路情報を追加する例 |
MIME
MIMEは、バイナリファイルやマルチバイト文字コードなどのデータを送信するために、送信側のMUAが送信データをASCIIコードにエンコードし、受信側のMUAがデコードすることで非ASCIIコードを送受信する仕組み。メールサーバ間では従来通りASCIIコードでメール転送が行われる。
0 件のコメント:
コメントを投稿