Simple Mail Transfer Protocol

Simple Mail Transfer Protocol (SMTP)詳解



Simple Mail Transfer Protocol(SMTP、シンプル メール トランスファー プロトコル)は、インターネット上で電子メールを転送するための標準プロトコルです。一般的にポート25番を使用し、メールの送信元と宛先を特定するためにDNSのMXレコードを参照します。RFC 5321で標準化されており、現在も電子メールシステムの基盤として広く利用されています。

SMTPの歴史と進化



SMTPは1980年にメール転送プロトコルとして提案され、その後改訂を経て1982年に現在の名称で標準化されました。インターネットの普及とメール機能の高度化に伴い、2001年2008年には、セキュリティ強化やIPv6対応、SPF/DKIMなどのメール認証規格への対応などを含む改訂が行われました。

SMTPの役割と動作



SMTPは大きく分けて、メールサーバー間のメール転送と、メールクライアントからメールサーバーへのメール送信という2つの役割を担います。

初期にはこの2つは明確に区別されていませんでしたが、スパムメール対策の強化を目的として、現在では「メール配送(transfer)」と「メール提出(submission)」という概念で区別されています。メール配送は従来通りポート25番を使用しますが、多くのISPではセキュリティ上の理由からポート25番へのアクセスを制限しており、メール提出ではポート587番を使用し、TLSによる暗号化と認証が推奨されています。ポート465番もTLS暗号化された提出ポートとして利用されます。

SMTPはクライアントとサーバー間の対話型の通信プロトコルです。クライアントがサーバーに接続すると「SMTPセッション」が確立され、その後、クライアントは各種コマンドを発行し、サーバーは応答を返します。セッションの終了にはQUITコマンドが使用されます。

主要なSMTPコマンド



SMTPには、`EHLO`、`HELO`、`MAIL`、`RCPT`、`DATA`、`RSET`、`NOOP`、`QUIT`など多くのコマンドが存在します。これらのコマンドは、メールの送信元、宛先、本文データなどを指定するために使用されます。特に重要なコマンドを以下に示します。

`EHLO` / `HELO`: サーバーにクライアントのドメイン名を通知します。`EHLO`が推奨されますが、古いサーバーとの互換性を考慮して`HELO`を使用する場合もあります。
`MAIL`: メール送信トランザクションを開始します。送信元アドレスを指定します。
`RCPT`: メール送信の宛先アドレスを指定します。複数宛先の指定も可能です。
`DATA`: メール本文データを送信します。本文データの終了は単独のピリオド(.)で示されます。
`QUIT`: SMTPセッションを終了します。
`RSET`: 現在のメールトランザクションを中止します。
`NOOP`: 何もしないコマンドです。

その他、`VRFY`、`EXPN`、`HELP`コマンドなどもありますが、セキュリティ上の理由から使用が制限されている場合があります。

SMTPの応答コード



SMTPサーバーは、クライアントからのコマンドに対して3桁の応答コードを返します。200番台は成功、300番台は追加情報が必要、400番台は一時的なエラー、500番台は永続的なエラーを表します。具体的な応答コードとその意味はRFC 5321に詳細に定義されています。

SMTPの拡張機能



SMTPは、標準機能以外にも様々な拡張機能を備えています。代表的な拡張機能には以下のようなものがあります。

8BITMIME拡張: 8ビット文字コードのメール本文データの送受信を可能にします。
CHUNKING拡張とBINARYMIME拡張: 大量のデータやバイナリデータを効率的に送信するための拡張機能です。
SIZE拡張: メールデータのサイズ制限を事前に確認できるようになります。
PIPELINING拡張: 複数のコマンドをまとめて送信することで効率を向上させます。
SMTP-AUTH: SASLメカニズムを使用したユーザー認証を可能にします。
* STARTTLS: SMTPセッションを暗号化するための拡張機能です。

セキュリティ



SMTPは、近年増加するスパムメールやセキュリティ上の脅威に対応するため、様々なセキュリティ対策が導入されています。ポート25番のブロック、SMTP-AUTHによる認証、STARTTLSやSMTPSによる暗号化などがその例です。

まとめ



SMTPは、インターネットにおける電子メールの送受信を支える重要なプロトコルです。その歴史と進化、動作、セキュリティ対策などを理解することで、より安全で効率的な電子メールシステムの運用に役立ちます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。