Simple Mail Transfer Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
TCP/IP群
アプリケーション層

BGP / DHCP / DNS / FTP / HTTP / IMAP / IRC / LDAP / MGCP / NNTP / NTP / POP / RIP / RPC / RTP / SIP / SMTP / SNMP / SSH / Telnet / TFTP / TLS/SSL / XMPP

カテゴリ
トランスポート層

TCP / UDP / DCCP / SCTP / RSVP

カテゴリ
ネットワーク層

IP (IPv4IPv6) / ICMP / ICMPv6 / NDP / IGMP / IPsec

カテゴリ
リンク層

ARP / OSPF / SPB / トンネリング (L2TP) / PPP / MAC (イーサネットIEEE 802.11DSLISDN

カテゴリ

Simple Mail Transfer Protocol(シンプル メール トランスファー プロトコル、SMTP)または簡易メール転送プロトコルは、インターネット電子メールを転送するプロトコルである。通常 TCPポート番号 25 を利用する。 転送先のサーバを特定するために、DNSMXレコードが使われる。RFC 5321 で標準化されている。

概要[編集]

SMTPはIETFにおいて標準化されたメール転送のためのプロトコルである。1980年9月にメール転送プロトコル(Mail Transfer Protocol)という名称のプロトコルが RFC 772 において提案され、2回の改訂を経て1982年8月に簡易メール転送プロトコル(SMTP)という名称で RFC 821/ STD0010 [1] として標準(Standard)になった。

その後 2001年4月に SMTPは他のRFCの内容もあわせて改訂され、RFC 2821[2] として提案標準(Proposed Standard)になった。RFC 821 から約20年を経て改訂版が発行されたのは、おもにインターネットの普及にともなって様々なメール拡張機能が実装され、それらをささえる部分を整理する必要があったからである。サーバ外からの攻撃や、IPv6のアドレスにも対応できるよう、またSPFSender Policy FrameworkRFC 4408)、DKIMDomainKeys Identified MailRFC 4871)などにも対応すべく 2008年10月に再度改訂(RFC 5321[3]された。

SMTP はメールサーバMTA(Mail Transfer Agent) 間の転送だけでなく、MUA(Mail User Agent) からメールサーバにメールを送信するときにも使われることが多い。ただし、この場合受信したサーバ側のふるまいがサーバ同士の転送と異なる点が多いため、サーバ側をMSA(Message Submission Agent)と呼びポート番号587を利用し、通常のMTAと分けることが多くなってきている (RFC 5321RFC 4409 が推奨になった)。

SMTPは本来テキストベースのプロトコルであり、要求/応答メッセージのみではなく、全ての文字が7bitASCIIでなければならないという制限があった。現在では拡張機能により8bit以上を要求する言語や添付ファイルに使われることの多いバイナリもそのまま転送することも可能であるが、互換性を考慮すると、MIME(Multipurpose Internet Mail Extensions)という方式で、7bitに収まるようにすることが望ましい。

なお、日本語は通常ISO-2022-JPという文字コードを使うことで、全てのバイトが7bitに収まるようにしている。

SMTPにおいてはサーバとクライアントの役割が明確に分離されている。RFC 5321によれば、それらは下図のように記述される。

  +--------+    +---------+                  +---------+
  |  User  |<-->|         |                  |         |
  +--------+    |         |       SMTP       |         |
                | Client- | Commands/Replies | Server- |
  +--------+    |   SMTP  |<---------------->|   SMTP  |    +--------+
  |  File  |<-->|         |     and Mail     |         |<-->|  File  |
  | System |    |         |                  |         |    | System |
  +--------+    +---------+                  +---------+    +--------+
                SMTP client                  SMTP server

SMTPにおいてはクライアントがサーバに接続するとただちにサーバ - クライアント間に "SMTP セッション" が確立され、その後、両者の間でFTPのような対話型でコマンドやそれに対する応答やメールがやりとりされる。メール・トランザクションはそのうち DATAコマンドを利用したデータの送信であるため、一つのSMTPセッション中には複数のメール・トランザクションが含まれうる。セッションの終了のためにはQUITコマンドが使用されるが、この点においてもFTPとの同様である。

SMTPにおいてはトランスポート・プロトコルとして通常 TCP が使用されるが、それに限定されることはない。

SMTP の認証機構[編集]

SMTP-AUTH[編集]

前述のSMTP標準にはユーザー認証機構が含まれていないが、インターネットの普及に伴ってその必要に迫られたため SASL メカニズムを利用した認証機構が RFC 2554 - SMTP Service Extension for Authentication(SMTP-AUTH)として標準化された。この標準の最新文書は RFC 4954 である。

POP before SMTP[編集]

SMTP-AUTH 標準化以前に普及したユーザー制限方法。メール送信する前にメール受信(POP3ログイン)を要求するため、こう呼ばれる。RFC 2476 - Message Submission において、クライアントを制限する方法の一つに挙げられたもの。

RFC[編集]

脚注[編集]

  1. ^ J. B. Postel著: Simple Mail Transfer Protocol
  2. ^ J. Klensin 編: Simple Mail Transfer Protocol
  3. ^ J. Klensin 編: Simple Mail Transfer Protocol

関連項目[編集]