SMTP
読み:エスエムティーピー
外語:SMTP: Simple Mail Transfer Protocol

 電子メールのホスト間通信プロトコルの一つで、最も普及しているもの。
目次

概要
 インターネットで、メールサーバーにメールを送信したり、ホスト間でメールを転送するための通信プロトコルである。
 US-ASCIIによるコマンド送受信を主体とした古式な7ビット環境であるが、現在も代替はなく、広く普及する主流である。

特徴

機能
 SMTPは、送信側が主体のプロトコルであり、断続的にしかネットワークに接続されない端末宛への送信に対しては、有効な働きをしない。
 そのため、あらかじめPOPサーバーと呼ばれる別のサーバーを相手先に用意し、ユーザー別にメールボックスに保存しておく。送信先のユーザーは必要なときにPOPサーバーに接続し、自分宛てのメールをPOPサーバーから受信する。

アドレス

エンベロープアドレス
 電子メールにはFromアドレス(送信元)とToアドレス(宛先)が欠かせない。
 しかしメーラーと呼ばれる電子メールソフトウェアで画面に表示されるFromアドレス/Toアドレスと、SMTPサーバー間のプロトコルでやりとりされるFromアドレス/Toアドレスは、別のものとなる。
 このうち、SMTPサーバー間のプロトコルで使われるものを「エンベロープアドレス」という。
 普段は同じものが使われるが、場合によっては異なるものを用いることもある。

封筒と便箋
 この構造は、SMTPは「封筒」(エンベロープ)、メールヘッダーや本文含めたメールの内容は「便箋」に喩えられている。
 メーラーで表示されるFromアドレス/Toアドレスは、メールの内容のうちメールヘッダー部分に記述された情報である。つまり、「便箋」に書かれた情報である。
 対して、SMTPを用いて送受信する際に用いるFromアドレス/Toアドレスは別に存在しており、これをエンベロープFromアドレス/エンベロープToアドレスという。エンベロープアドレスは「封筒」に書かれた宛先と送り主の情報であると言える。
 SMTPサーバーは「封筒」を見てメールを配送する。

応用方法
 殆どの場合、メールヘッダーのアドレスとエンベロープアドレスは同じものが使われるが、メーリングリストなどでは異なってくる。
 メーリングリストで、メーラーで表示されるToがメーリングリストのアドレスなのに、各メンバーにメールが届くのは、エンベロープToアドレスが各メンバーのものとなっているからである。

技術

MIME
 SMTPで送信する電子メールは、元々はメールアドレス、メールヘッダーとメール本文、全てで7ビットしか使えないものだった。
 そこで、MIMEと呼ばれる手法を用いることで、8ビットの情報を7ビットで表現したり、他にも様々な付加機能を実現している。
 これによって、8ビットとなるバイナリファイルの添付なども可能となった。

ESMTP
 プロトコル自体を8ビット対応にするものもある。
 このため現在では8ビットでも送受信可能なサーバーが一般的になりつつあるが、古いサーバーでは7ビットしか使えないものも現存する。

ポート
 SMTPの本来の任務はメールサーバー(MTA)間の転送だが、メールソフト(MUA)からメールサーバー(MTA)宛にメールを送信する場合にも使うことができる。
 MTA間の転送は、25/tcpを使う。
 MUA→MTAの場合も、かつては25/tcpを使うのが一般的だった。現在ではMessage submissionプロトコル(RFC 6409)を使うのがインターネット標準で、そのためのポートは587/tcpである(ただし25/tcpも利用可能)。

送信
 メールを送信する場合は、一旦最寄りのSMTPサーバーへメールを投函する(これがメーラの設定に書くSMTPサーバー名)。
 サーバーは宛て先のIPアドレスDNSへ照会し、送り先が存在すればそのホストへ向かって送信する。
 当然ながら途中にはファイアウォールの外のサーバーを幾つか経由することになるため、盗聴の危険性がある。セキュリティを要する場合にはPGPPEMなどを利用して暗号化するのが一般的である。

RFC

沿革
 現在は、RFC 5321で規定され、Standards Track(標準化過程)となっている。
 SMTPに関する直接的なRFCと、それに関連するRFCの沿革は次の通り。
 RFC 821として長く運用され、約20年経ちインターネットメールの普及に伴う様々な拡張機能を押さえること、2000年問題対応などのため、RFC 2821として改定され、提案標準プロトコル(Proposed Standard)となった。
 その後、SPF(RFC 4408)、DKIM(RFC 4871)などへの対応のために再度、RFC 5321として改訂された。これは草案標準(ドラフト標準)である。

関連RFC
 これを著している時点での最新版。
 かつてのもの。

再検索