跳到主要内容

Appendix F. Deprecated Features of RFC 821

This appendix lists features from RFC 821 that are deprecated and should not be used in new implementations.

F.1. TURN

Command: TURN

Purpose: Allowed client and server to reverse roles, enabling bidirectional mail exchange in single TCP connection.

Why Deprecated:

  • Security risk: Allowed unauthorized relaying
  • Complexity: Difficult to implement correctly
  • Unnecessary: Modern systems maintain separate connections

Status: OBSOLETE - Do not implement

Response: Servers SHOULD return 502 Command not implemented

C: TURN
S: 502 5.5.1 Command not implemented

F.2. Source Routing

Feature: Explicit routing through intermediate hosts

Syntax: @host1,@host2:user@host3

Why Deprecated:

  • Security: Enabled spam and abuse
  • Complexity: Error-prone routing logic
  • Obsolete: DNS MX provides better routing
  • See Appendix C for details

Status: DEPRECATED - Should not be used

Response: Servers SHOULD reject source-routed addresses

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

F.3. HELO

Command: HELO domain

Modern Alternative: EHLO domain

Status: Supported but not preferred

HELO is retained for backward compatibility but:

  • EHLO is strongly preferred
  • New implementations should support both
  • Clients should try EHLO first, fallback to HELO if needed

Recommendation: Always try EHLO first

# Preferred
C: EHLO client.example
S: 250 server.example

# Fallback only
C: HELO client.example
S: 250 server.example

F.4. #-literals

Feature: Alternative address literal format using # instead of []

Old Syntax: user@[#192.0.2.1] (decimal), user@[#xC0000201] (hexadecimal)

Why Deprecated:

  • Confusing syntax
  • Rarely used
  • Standard brackets sufficient

Status: OBSOLETE - Do not implement

Modern Syntax: Use standard IP literals

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

F.5. Dates and Years

Issue: RFC 821 allowed 2-digit years

Problem: Y2K ambiguity

Status: Fixed - Always use 4-digit years

RFC 5322 Requirement: Dates must use 4-digit years

❌ Old: Date: 24 Dec 99 10:00:00 +0000
✅ New: Date: 24 Dec 2024 10:00:00 +0000

F.6. Sending versus Mailing

Commands: SEND, SOML, SAML

SEND Command

  • Purpose: Send to user's terminal, not mailbox
  • Why deprecated: Terminal access obsolete

SOML Command

  • Purpose: Send Or Mail - deliver to terminal if logged in, else mailbox
  • Why deprecated: Complex, rarely implemented

SAML Command

  • Purpose: Send And Mail - deliver to both terminal and mailbox
  • Why deprecated: Terminal delivery obsolete

Status: OBSOLETE - Do not implement

Response: Return 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

FeatureStatusAction
TURNObsoleteDo not implement
Source RoutingDeprecatedReject if attempted
HELOSupportedKeep for compatibility, prefer EHLO
#-literalsObsoleteDo not implement
2-digit yearsFixedAlways use 4-digit
SEND/SOML/SAMLObsoleteDo not implement

Migration Guidelines

For servers still supporting deprecated features:

  1. Log usage: Track if anyone uses deprecated features
  2. Return errors: Reject obsolete commands with clear messages
  3. Document: Inform users of deprecation
  4. Remove: After transition period, remove support entirely
  5. Test: Ensure removal doesn't break legitimate uses

For clients using deprecated features:

  1. Update code: Remove use of obsolete features
  2. Use EHLO: Switch from HELO to EHLO
  3. Remove source routing: Use simple addresses
  4. Standard formats: Use modern address and date formats