メインコンテンツまでスキップ

付録F. RFC 821の非推奨機能 (Deprecated Features of RFC 821)

この付録は、RFC 821からの機能で、非推奨であり、新しい実装では使用すべきではないものをリストアップする。

F.1. TURN

コマンド: TURN

目的: クライアントとサーバーの役割を逆転させ、単一のTCP接続で双方向のメール交換を可能にした。

非推奨の理由:

  • セキュリティリスク: 不正なリレーを許可した
  • 複雑性: 正しく実装するのが困難だった
  • 不要: 現代のシステムは別々の接続を維持する

ステータス: 廃止 - 実装しないこと

応答: サーバーは 502 Command not implemented を返すべきである (SHOULD)

C: TURN
S: 502 5.5.1 Command not implemented

F.2. ソースルーティング (Source Routing)

機能: 中間ホストを経由する明示的なルーティング

構文: @host1,@host2:user@host3

非推奨の理由:

  • セキュリティ: スパムと悪用を可能にした
  • 複雑性: エラーが発生しやすいルーティングロジック
  • 時代遅れ: DNS MXがより良いルーティングを提供する
  • 詳細については付録Cを参照

ステータス: 非推奨 - 使用すべきではない

応答: サーバーは、ソースルーティングされたアドレスを拒否すべきである (SHOULD)

C: MAIL FROM:<@relay.example:[email protected]>
S: 550 5.5.0 Source routing not supported

F.3. HELO

コマンド: HELO domain

現代の代替: EHLO domain

ステータス: サポートされているが好ましくない

HELOは後方互換性のために保持されているが:

  • EHLOが強く推奨される
  • 新しい実装は両方をサポートすべきである (SHOULD)
  • クライアントは最初にEHLOを試し、必要に応じてHELOにフォールバックすべきである (SHOULD)

推奨: 常に最初にEHLOを試す

# 推奨
C: EHLO client.example
S: 250 server.example

# フォールバックのみ
C: HELO client.example
S: 250 server.example

F.4. #リテラル (#-literals)

機能: [] の代わりに # を使用する代替アドレスリテラル形式

古い構文: user@[#192.0.2.1] (10進数)、user@[#xC0000201] (16進数)

非推奨の理由:

  • 混乱する構文
  • ほとんど使用されなかった
  • 標準の括弧で十分

ステータス: 廃止 - 実装しないこと

現代の構文: 標準IPリテラルを使用する

✅ IPv4: user@[192.0.2.1]
✅ IPv6: user@[IPv6:2001:db8::1]
❌ 古い: user@[#192.0.2.1]

F.5. 日付と年 (Dates and Years)

問題: RFC 821は2桁の年を許可していた

問題: Y2Kの曖昧性

ステータス: 修正済み - 常に4桁の年を使用する

RFC 5322要件: 日付は4桁の年を使用しなければならない (MUST)

❌ 古い: Date: 24 Dec 99 10:00:00 +0000
✅ 新しい: Date: 24 Dec 2024 10:00:00 +0000

F.6. 送信 vs メーリング (Sending versus Mailing)

コマンド: SENDSOMLSAML

SENDコマンド (SEND Command)

  • 目的: メールボックスではなく、ユーザーの端末に送信する
  • 非推奨の理由: 端末アクセスが時代遅れ

SOMLコマンド (SOML Command)

  • 目的: 送信またはメール - ログインしている場合は端末に、そうでなければメールボックスに配信
  • 非推奨の理由: 複雑で、ほとんど実装されなかった

SAMLコマンド (SAML Command)

  • 目的: 送信とメール - 端末とメールボックスの両方に配信
  • 非推奨の理由: 端末配信が時代遅れ

ステータス: 廃止 - 実装しないこと

応答: 502 Command not implemented を返す

C: SEND FROM:<[email protected]>
S: 502 5.5.1 Command not implemented

C: SOML FROM:<[email protected]>
S: 502 5.5.1 Command not implemented

C: SAML FROM:<[email protected]>
S: 502 5.5.1 Command not implemented

要約表 (Summary Table)

機能ステータスアクション
TURN廃止実装しないこと
ソースルーティング非推奨試行された場合は拒否
HELOサポート互換性のために保持、EHLOを推奨
#リテラル廃止実装しないこと
2桁の年修正済み常に4桁を使用
SEND/SOML/SAML廃止実装しないこと

移行ガイドライン (Migration Guidelines)

非推奨機能をまだサポートしているサーバーの場合:

  1. 使用状況をログ記録: 誰かが非推奨機能を使用しているかどうかを追跡する
  2. エラーを返す: 明確なメッセージで廃止されたコマンドを拒否する
  3. 文書化: ユーザーに非推奨を知らせる
  4. 削除: 移行期間後、サポートを完全に削除する
  5. テスト: 削除が正当な使用を妨げないことを確認する

非推奨機能を使用しているクライアントの場合:

  1. コードを更新: 廃止された機能の使用を削除する
  2. EHLOを使用: HELOからEHLOに切り替える
  3. ソースルーティングを削除: 単純なアドレスを使用する
  4. 標準形式: 現代のアドレスと日付形式を使用する