Skip to main content

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