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 (IPv4, IPv6) / ICMP / ICMPv6 / IGMP / IPsec

カテゴリ
リンク層

ARP/InARP / NDP / OSPF / SPB / トンネリング (L2TP) / PPP / MAC (イーサネット, IEEE 802.11, DSL, ISDN)

カテゴリ

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のアドレスにも対応できるよう、またSPF(RFC 4408)、DKIM(RFC 4871)などにも対応すべく 2008年10月に再度改訂(RFC 5321[3]された。

SMTP はメールサーバMTA 間の転送だけでなく、MUA からメールサーバにメールを送信するときにも使われることが多い。

ただし、この場合受信したサーバ側のふるまいがサーバ同士の転送と異なる点が多いため、サーバ側を MSA と呼びポート番号 587 を利用し、通常の MTA と分けることが多くなってきている (RFC 5321RFC 4409 が推奨になった)。

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

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

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

関連項目[編集]