SMTP
電子メールを送信したり、メールサーバ同士で転送したりするためのプロトコル。サーバ間の転送にはTCPのポート25番を使う。
イマシルちゃんの解説
メールを送ると、まず自分のメールサーバに届いて、そこから相手のメールサーバへバケツリレーで運ばれるんだ。
このメールを運ぶときの決まりごとがSMTPなんだよ。
ちなみに、届いたメールを自分のパソコンやスマホで読むときは、POP3やIMAP4っていう別のプロトコルを使うんだ!
より深い解説
定義
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で調べて、送り先のメールサーバを決める。
主なコマンド
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の結果をもとに、認証に失敗したメールをどう扱うか(受信、隔離、拒否)を送信側のドメインが宣言する |
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和7年度 春期 午前Ⅱ 問21
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問19
- ネットワークスペシャリスト 令和5年度 春期 午前Ⅱ 問20
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問5
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問8
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問14
- ネットワークスペシャリスト 令和3年度 春期 午前Ⅱ 問2
- ネットワークスペシャリスト 令和3年度 春期 午前Ⅱ 問20
- ネットワークスペシャリスト 令和元年度 秋期 午前Ⅱ 問9