2022/06/20

電子メール

メール送信用のプロトコルには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を使用したメール送受信の流れ

  1. ①x@a.co.jpのメーラは、SMTPを用いてサーバAにメールを転送する
  2. ②サーバAでメールはキューに溜まり、一定時間ごとに処理される。サーバAは、宛先メールアドレスのドメイン名「b.co.jp」をもとに、次にメールを転送するホストを決定する。サーバAはローカルDNSサーバに対し、b.co.jpドメインのメールサーバを問い合わせる
  3. ③a.co.jpのDNSサーバは、b.co.jpドメインのDNSサーバに対し、同ドメインのメールサーバを問い合わせる。MXレコードにはメールサーバのホスト名が、AレコードにはそのIPアドレスが登録されているので、サーバBのIPアドレスが返答される
  4. ④サーバAはSMTPを用いてサーバBにメールを転送する。サーバBは、受け取ったメールをy@b.co.jpのメールボックスに保存する
  5. ⑤受信者は、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の配信の記録。幾つかのパラメタと配信した日時を格納する。
パラメタ名 格納する値
from EHLOコマンドの引数とTCPコネクションから決定されたクライアントのIPアドレス
by MTAが稼働しているホストのドメイン名
for エンベロープTo
with プロトコル
id メッセージID
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 件のコメント:

コメントを投稿

人気の投稿