SMTP

読み:えすえむてぃーぴー / 英語表記:Simple Mail Transfer Protocol

電子メールを送信したり、メールサーバ同士で転送したりするためのプロトコル。サーバ間の転送にはTCPのポート25番を使う。

イマシルちゃんの解説

SMTPは、電子メールを送信したり、メールサーバ同士で転送したりするためのプロトコルだよ。
メールソフトから送ったメールは、送信側のメールサーバを経由して宛先側へ運ばれるんだ。
そのやり取りでは、まず送り手が差出人と宛先を伝え、相手の応答を確かめてからメールの内容を渡すよ。
受け取る側も成功したかどうかを返すから、送り手は次の処理へ進めるんだ。
こんなふうに手順と返事の意味を共通にしておくことで、異なるメールサービスの間でもメールを受け渡せるんだよ。

より深い解説

定義

SMTP(Simple Mail Transfer Protocol)は、RFC 5321で定められた、メールの送信と転送のプロトコルである。メールサーバ同士の転送には、TCPのポート25番を使う。メールを受信者が受け取るには、POP3(110番)やIMAP4(143番)を使う。

メールが届くまで

区間プロトコルポート番号
送信者のメールソフト → 送信者側のメールサーバSMTP(サブミッション)587
送信者側のメールサーバ → 受信者側のメールサーバSMTP25
受信者のメールソフトが受信サーバへ接続して取得POP3 / IMAP4110 / 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送信元のドメインが詐称されていないかを、受信側で確かめる
OP25BISPが、動的IPアドレスから外部のポート25番への直接の送信を遮断する

送信ドメイン認証

方式確かめ方
SPF送信元ドメインのDNSに、送信を許可するメールサーバのIPアドレスを登録しておき、受信側が照合する
DKIM送信側のメールサーバがメールに電子署名を付け、受信側がDNSに公開された公開鍵で検証する
DMARCSPFとDKIMの結果をもとに、認証に失敗したメールをどう扱うか(受信、隔離、拒否)を送信側のドメインが宣言する

実際の試験ではここに出る!全21問

ネットワークスペシャリスト

午前Ⅱ
午後Ⅱ
午後Ⅰ

テクニカルエンジニア(ネットワーク)

午前

この用語が出てくる記事

↑