SMTP

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

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

イマシルちゃんの解説

メールを送ると、まず自分のメールサーバに届いて、そこから相手のメールサーバへバケツリレーで運ばれるんだ。
このメールを運ぶときの決まりごとがSMTPなんだよ。

ちなみに、届いたメールを自分のパソコンやスマホで読むときは、POP3やIMAP4っていう別のプロトコルを使うんだ!

より深い解説

定義

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

メールが届くまで

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

送信ドメイン認証

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

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

この用語が出てくる記事

↑