Simple Mail Transfer Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| アプリケーション層 |
|---|
| DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · SSL/TLS · SDP · SOAP · CMIP · STUN · GTP · NTP · EHRP · PX-VPN |
| トランスポート層 |
| TCP · UDP · DCCP · SCTP · RTP · RSVP · IGMP · PPTP · RUDP · UDP-Lite |
| ネットワーク層 |
| IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 · IGP |
| データリンク層 |
| 802.11 · 802.16 · Wi-Fi · WiMAX · ATM · DTM · トークンリング · イーサネット · FDDI · フレームリレー · GPRS · EVDO · HSPA · HDLC · PPP · SLIP · L2TP · ISDN · SMDS · アークネット |
| 物理層 |
| イーサネット物理層 · モデム · PLC · SONET/SDH · G.709 · OFDM · 光ファイバー · 同軸ケーブル · ツイストペアケーブル |
Simple Mail Transfer Protocol(簡易メール転送プロトコル、SMTP)は、インターネットで電子メールを転送するプロトコルである。通常 TCP のポート番号 25 を利用する。 転送先のサーバを特定するために、DNS の MXレコードが使われる。RFC2821で標準化されている。
目次 |
[編集] 概要
SMTP は IETF において標準化されたメール転送のためのプロトコルである。1980 年 9 月にメール転送プロトコル (Mail Transfer Protocol) という名称のプロトコルが RFC 772 において提案され、2 回の改訂を経て 1982 年 8 月に簡易メール転送プロトコル (SMTP) という名称で RFC 821 / STD0010 (J. B. Postel 著: Simple Mail Transfer Protocol) として標準 (Standard) になった。その後 2001 年 4 月に SMTP は他の RFC の内容もあわせて改訂され、RFC 2821 (J. Klensin 編: Simple Mail Transfer Protocol) として提案標準 (Proposed Standard) になった。RFC 821 から約 20 年を経て改訂版が発行されたのは、おもにインターネットの普及にともなって様々なメール拡張機能が実装され、それらをささえる部分を整理する必要があったからである。
SMTP はメールサーバの MTA 間の転送だけでなく、MUA からメールサーバにメールを送信するときにも使われることが多い。 ただし、この場合受信したサーバ側のふるまいがサーバ同士の転送と異なる点が多いため、サーバ側を MSA と呼びポート番号 587 を利用し、通常の MTA と分けることが多くなってきている。
SMTP は本来テキストベースのプロトコルであり、要求/応答メッセージのみではなく、全ての文字が 7 bit ASCII でなければならないという制限があった。現在では拡張機能により 8 bit 以上を要求する言語や添付ファイルに使われることの多いバイナリもそのまま転送することも可能であるが、互換性を考慮すると、MIME という方式で、7 bit に収まるようにすることが望ましい。 なお、日本語は通常 ISO-2022-JP という文字コードを使うことで、全てのバイトが 7 bit に収まるようにしている。
SMTP においてはサーバとクライアントの役割が明確に分離されている。RFC 2821 によればそれらは下図のように記述される。
+----------+ +----------+
+------+ | | | |
| User |<-->| | SMTP | |
+------+ | Client- |Commands/Replies| Server- |
+------+ | SMTP |<-------------->| SMTP | +------+
| File |<-->| | and Mail | |<-->| File |
|System| | | | | |System|
+------+ +----------+ +----------+ +------+
SMTP client SMTP server
SMTP においてはクライアントがサーバに接続するとただちにサーバ-クライアント間に "SMTP セッション" が確立され、その後、両者の間でコマンドやそれに対する応答やメールがやりとりされる。SMTP セッション中には複数のメール・トランザクションがふくまれうる。セッションの確立のためにメッセージ送受信をともなわない点では SIP や RTSP とはことなっている。セッションの終了のためには QUIT コマンドが使用されるが、これが SIP でいえば BYE メッセージに対応している。
SMTP においてはトランスポート・プロトコルとして通常 TCP が使用されるが、それに限定されることはない。
[編集] SMTP の認証機構
当初はユーザー認証機構を備えていなかったが、インターネットの普及に伴ってその必要に迫られたため、SASLメカニズムを利用した認証機構が SMTP-AUTH (SMTP Authentication) として標準化された。 認証方式として PLAIN、LOGIN、DIGEST-MD5、CRAM-MD5 などが広く利用されている。
また、SMTP-AUTH 標準化以前に POP before SMTP と呼ばれる SMTP プロトコル外の機構による利用ユーザー制限方法が考案され、現在でも利用されている。
[編集] RFC
- RFC 2821 - Simple Mail Transfer Protocol
- RFC 1869 - SMTP Service Extensions (ESMTP)
- RFC 1891 - SMTP Service Extension for Delivery Status Notifications (DSN)
- RFC 2554 - SMTP Service Extension for Authentication

