TCP_info = address_literal >Real_IP_Start %Real_IP_End |
( Domain >Real_Domain_Start %Real_Domain_End FWS address_literal >Real_IP_Start %Real_IP_End ) |
( non_conformant_address_literal >Real_IP_Start %Real_IP_End );
- Extended_Domain = Domain >Real_Domain_Start %Real_Domain_End | # Used to be a real domain
+ Extended_Domain = (Domain >Real_Domain_Start %Real_Domain_End | # Used to be a real domain
( Domain >Reported_Domain_Start %Reported_Domain_End FWS "(" TCP_info ")" ) | # Here domain is something specified by remote side
- ( address_literal >Real_Domain_Start %Real_Domain_End FWS "(" TCP_info ")" ) |
- address_literal >Real_IP_Start %Real_IP_End; # Not RFC conforming, but many MTA try this
+ ( address_literal >Real_Domain_Start %Real_Domain_End FWS "(" TCP_info ")" ) );
ccontent = ctext | FWS | '(' @{ fcall balanced_ccontent; };
balanced_ccontent := ccontent* ')' @{ fret; };