Simple Mail Transfer Protocol
| TCP/IP群 |
|---|
| アプリケーション層 |
|
| トランスポート層 |
| カテゴリ |
| インターネット層 |
| カテゴリ |
| リンク層 |
| カテゴリ |
Simple Mail Transfer Protocol(シンプル メール トランスファー プロトコル、SMTP)または簡易メール転送プロトコルは、インターネットで電子メールを転送するプロトコルである。通常 TCP のポート番号 25 を利用する。 転送先のサーバを特定するために、DNS の MXレコードが使われる。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(Sender Policy Framework、RFC 4408)、DKIM(DomainKeys Identified Mail、RFC 4871)などにも対応すべく 2008年10月に再度改訂(RFC 5321)[3]された。
SMTP はメールサーバの MTA(Mail Transfer Agent) 間の転送だけでなく、MUA(Mail User Agent) からメールサーバにメールを送信するときにも使われることが多い。ただし、この場合受信したサーバ側のふるまいがサーバ同士の転送と異なる点が多いため、サーバ側をMSA(Message Submission Agent)と呼びポート番号587を利用し、通常のMTAと分けることが多くなってきている (RFC 5321 で RFC 4409 が推奨になった)。
SMTPは本来テキストベースのプロトコルであり、要求/応答メッセージのみではなく、全ての文字が7bitASCIIでなければならないという制限があった。現在では拡張機能により8bit以上を要求する言語や添付ファイルに使われることの多いバイナリもそのまま転送することも可能であるが、互換性を考慮すると、MIME(Multipurpose Internet Mail Extensions)という方式で、7bitに収まるようにすることが望ましい。
なお、日本語は通常ISO-2022-JPという文字コードを使うことで、全てのバイトが7bitに収まるようにしている。
SMTPにおいてはサーバとクライアントの役割が明確に分離されている。RFC 5321によれば、それらは下図のように記述される。
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[編集]
- RFC 5321 - Simple Mail Transfer Protocol - obsoletes RFC 2821, RFC 1869
- RFC 3461 - Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs) - obsoletes RFC 1891
- RFC 4954 - SMTP Service Extension for Authentication - obsoletes RFC 2554
- RFC 6409 - Message Submission for Mail - obsoletes RFC 4409
- RFC 4408 - Sender Policy Framework (SPF) Authorizing Use of Domains in E-Mail, Version 1
- RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures - obsoletes RFC 4871, RFC 5672
- RFC 7504 - SMTP 521 and 556 Reply Codes
脚注[編集]
- ^ J. B. Postel著: Simple Mail Transfer Protocol
- ^ J. Klensin 編: Simple Mail Transfer Protocol
- ^ J. Klensin 編: Simple Mail Transfer Protocol
関連項目[編集]
- Outbound Port 25 Blocking
- POP3
- IMAP
- スパム (メール)(いわゆる迷惑メール)
| ||||||||||||||||