Simple Mail Transfer Protocol

出典: Wikipedio


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

目次

概要

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 年を経て改訂版が発行されたのは、おもにインターネットの普及にともなって様々なメール拡張機能が実装され、それらをささえる部分を整理する必要があったからである。サーバー外からの攻撃や、IPv6のアドレスにも対応できるよう、またSPF (RFC 4408)、DKIM (RFC 4871) などにも対応すべく 2008年10月に再度改訂された。

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 の認証機構

当初はユーザー認証機構を備えていなかったが、インターネットの普及に伴ってその必要に迫られたため、SASLメカニズムを利用した認証機構が SMTP-AUTH (SMTP Authentication) として標準化された。 認証方式として PLAIN、LOGIN、DIGEST-MD5、CRAM-MD5 などが広く利用されている。

また、SMTP-AUTH 標準化以前に POP before SMTP と呼ばれる SMTP プロトコル外の機構による利用ユーザー制限方法が考案され、現在でも利用されている。

RFC

  • RFC 5321 - 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

関連項目

az:SMTP bs:Simple Mail Transfer Protocol ca:Simple Mail Transfer Protocol cs:Simple Mail Transfer Protocol da:Simple Mail Transfer Protocol de:Simple Mail Transfer Protocol el:SMTP en:Simple Mail Transfer Protocol eo:SMTP es:Simple Mail Transfer Protocol et:Lihtne meiliedastusprotokoll eu:SMTP fa:پروتکل ساده انتقال پست الکترونیکی fi:SMTP fr:Simple Mail Transfer Protocol gl:Simple Mail Transfer Protocol he:Simple Mail Transfer Protocol hr:SMTP hu:Simple Mail Transfer Protocol id:Simple Mail Transfer Protocol is:Simple Mail Transfer Protocol it:Simple Mail Transfer Protocol ko:간이 우편 전송 프로토콜 ku:SMTP lb:Simple Mail Transfer Protocol lt:SMTP lv:SMTP ml:സിമ്പിൾ മെയിൽ ട്രാൻസ്ഫർ പ്രോട്ടോകോൾ nl:Simple Mail Transfer Protocol nn:Simple Mail Transfer Protocol no:Simple Mail Transfer Protocol pl:Simple Mail Transfer Protocol pt:Simple Mail Transfer Protocol ro:Simple Mail Transfer Protocol ru:SMTP simple:SMTP sk:Simple Mail Transfer Protocol sl:SMTP sr:SMTP sv:SMTP th:Simple Mail Transfer Protocol tr:SMTP uk:SMTP vi:SMTP yo:Simple Mail Transfer Protocol zh:简单邮件传输协议

個人用ツール