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
| Feature | Status | Action |
|---|---|---|
| TURN | Obsolete | Do not implement |
| Source Routing | Deprecated | Reject if attempted |
| HELO | Supported | Keep for compatibility, prefer EHLO |
| #-literals | Obsolete | Do not implement |
| 2-digit years | Fixed | Always use 4-digit |
| SEND/SOML/SAML | Obsolete | Do not implement |
Migration Guidelines
For servers still supporting deprecated features:
- Log usage: Track if anyone uses deprecated features
- Return errors: Reject obsolete commands with clear messages
- Document: Inform users of deprecation
- Remove: After transition period, remove support entirely
- Test: Ensure removal doesn't break legitimate uses
For clients using deprecated features:
- Update code: Remove use of obsolete features
- Use EHLO: Switch from HELO to EHLO
- Remove source routing: Use simple addresses
- Standard formats: Use modern address and date formats