付録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)
コマンド: SEND、SOML、SAML
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)
非推奨機能をまだサポートしているサーバーの場合:
- 使用状況をログ記録: 誰かが非推奨機能を使用しているかどうかを追跡する
- エラーを返す: 明確なメッセージで廃止されたコマンドを拒否する
- 文書化: ユーザーに非推奨を知らせる
- 削除: 移行期間後、サポートを完全に削除する
- テスト: 削除が正当な使用を妨げないことを確認する
非推奨機能を使用しているクライアントの場合:
- コードを更新: 廃止された機能の使用を削除する
- EHLOを使用: HELOからEHLOに切り替える
- ソースルーティングを削除: 単純なアドレスを使用する
- 標準形式: 現代のアドレスと日付形式を使用する