SMTP
電子メールを送信したり、メールサーバ同士で転送したりするためのプロトコル。サーバ間の転送にはTCPのポート25番を使う。
イマシルちゃんの解説
SMTPは、電子メールを送信したり、メールサーバ同士で転送したりするためのプロトコルだよ。
メールソフトから送ったメールは、送信側のメールサーバを経由して宛先側へ運ばれるんだ。
そのやり取りでは、まず送り手が差出人と宛先を伝え、相手の応答を確かめてからメールの内容を渡すよ。
受け取る側も成功したかどうかを返すから、送り手は次の処理へ進めるんだ。
こんなふうに手順と返事の意味を共通にしておくことで、異なるメールサービスの間でもメールを受け渡せるんだよ。
この解説はわかりやすかったですか?
より深い解説
定義
SMTP(Simple Mail Transfer Protocol)は、RFC 5321で定められた、メールの送信と転送のプロトコルである。メールサーバ同士の転送には、TCPのポート25番を使う。メールを受信者が受け取るには、POP3(110番)やIMAP4(143番)を使う。
メールが届くまで
| 区間 | プロトコル | ポート番号 |
|---|---|---|
| 送信者のメールソフト → 送信者側のメールサーバ | SMTP(サブミッション) | 587 |
| 送信者側のメールサーバ → 受信者側のメールサーバ | SMTP | 25 |
| 受信者のメールソフトが受信サーバへ接続して取得 | POP3 / IMAP4 | 110 / 143。最初からTLSを使う方式は995 / 993 |
送信者側のメールサーバは、宛先のドメインのMXレコードをDNSで調べて、送り先のメールサーバを決める。
接続後にTLSへ切り替える方式では、POP3の110番やIMAPの143番をそのまま使う。暗号化しているという条件だけで、接続先が995番や993番だとは決められない。
主なコマンド
EHLO mail.example.com ← あいさつ(拡張機能を使う場合)
MAIL FROM:<[email protected]> ← 送信者(エンベロープ)
RCPT TO:<[email protected]> ← 受信者(エンベロープ)
DATA ← ここから本文
(ヘッダーと本文)
. ← 「.」だけの行で本文の終わり
QUIT
MAIL FROMとRCPT TOで指定する送信者・受信者(エンベロープ)は、メールのヘッダーのFrom:やTo:とは別物で、一致しなくても送れる。迷惑メールで送信者が偽装されやすいのはこのためである。
もともと認証がなかった
SMTPには、もともと送信者を認証する仕組みがなかった。そのため、次のような拡張や対策が加えられてきた。
| 仕組み | 内容 |
|---|---|
| SMTP-AUTH | メールを送る前に、利用者名とパスワードなどで利用者を認証する |
| STARTTLS | 平文で始めた接続を、途中からTLSで暗号化する |
| 不正中継(オープンリレー)の防止 | 自分のドメインと無関係な第三者のメールを中継しないよう設定する |
| SPF / DKIM / DMARC | 送信元のドメインが詐称されていないかを、受信側で確かめる |
| OP25B | ISPが、動的IPアドレスから外部のポート25番への直接の送信を遮断する |
送信ドメイン認証
| 方式 | 確かめ方 |
|---|---|
| SPF | 送信元ドメインのDNSに、送信を許可するメールサーバのIPアドレスを登録しておき、受信側が照合する |
| DKIM | 送信側のメールサーバがメールに電子署名を付け、受信側がDNSに公開された公開鍵で検証する |
| DMARC | SPFとDKIMの結果をもとに、認証に失敗したメールをどう扱うか(受信、隔離、拒否)を送信側のドメインが宣言する |
実際の試験ではここに出る!全21問
ネットワークスペシャリスト
- 午前Ⅱ
- 午後Ⅱ
- 午後Ⅰ
テクニカルエンジニア(ネットワーク)
- 午前