Recent from talks
Contribute something
Nothing was collected or created yet.
Bounce address
View on WikipediaA bounce address is an email address to which bounce messages are delivered. There are many variants of the name, none of them used universally, including return path, reverse path, envelope from, envelope sender, MAIL FROM, 5321-FROM, return address, From_, Errors-to, etc. It is not uncommon for a single document to use several of these names.
All of these names refer to the email address provided with the MAIL FROM command during the SMTP session.
Background information
[edit]Ordinarily, the bounce address is not seen by email users and, without standardization of the name, it may cause confusion.
If an email message is thought of as resembling a traditional paper letter in an envelope, then the "header fields", such as To:, From:, and Subject:, along with the body of the message are analogous to the letterhead and body of a letter - and are normally all presented and visible to the user. However, the envelope in this analogy is the contents of the MAIL FROM and RCPT TO fields from the SMTP session - and neither of these is normally visible to the user.
While it is most common for the To: and From: information in the letter to be the same as the "envelope" values, such is not always the case. For example, on electronic mailing lists, the information seen in the "From:" header will come from the person who sent the email to the list, while the bounce address will be set to that of the mailing list software, so problems delivering the mailing list messages can be handled correctly.
Only the envelope information is looked at to resolve where the email should go; the body of the email is not examined. Mail Transfer Agents (MTA) using the SMTP protocol use the RCPT TO command to determine where the email should go, and the MAIL FROM command to indicate where it came from.
Usage
[edit]While its original usage was to provide information about how to return bounce messages, since the late 1990s, other uses have come about. These typically take advantage of properties of the bounce address, such as:
- It is given early in the SMTP session, so a message can be rejected without receiving its body.
- It is typically not seen by users so it can be altered to include additional information without confusing them.
- It is a required part of Mail Transfer Agent software, so it is easy for other programs to use. In contrast, the "from" address in the body of the mail can be on several different headers (e.g. the
From:,Sender:,Resent-from:, etc.) or be missing entirely.
Extended uses include mailing list handling in Variable envelope return path (VERP), email authentication via SPF, spam filtering, and backscatter reduction in Bounce Address Tag Validation.
Terminology
[edit]The various terms have different origins and sometimes different meanings, although these differences have often become moot on the modern internet.
- bounce address - When an email can not be delivered, the MTA will create a bounce message and send it to the address given by the
MAIL FROMcommand. Used in RFC 4406. - return path - When the email is put in the recipient's email box, a new mail header is created with the name "Return-Path:" containing the address on the
MAIL FROMcommand. Earlier forms of email (such as UUCP) would require information about each "hop" along the path that the email traveled to reach the destination, hence the "path" part of the name. Used in RFC 2821, RFC 3834, RFC 4409. - reverse path - the argument of the SMTP
MAIL FROMcommand, whose content is supposed to consist of the envelope sender address. Used in RFC 5321, RFC 3464, RFC 3834, Internet Mail Architecture. - envelope from - information that the SMTP protocol uses analogous to the envelope of a letter. Used in RFC 5230, RFC 5233.
- envelope sender address - the mailbox address in a non-empty reverse path excluding any (deprecated) reverse routing info. Used in RFC 2821, RFC 3461, RFC 3464, RFC 3798, RFC 5228.
- envelope return address - similar to envelope sender address, used in RFC 3461, RFC 3464, RFC 3834, RFC 4952.
- MAIL FROM - This variation comes directly from the SMTP
MAIL FROMcommand name. Used in RFC 5321, RFC 3464, RFC 3834, RFC 4408, RFC 4409, RFC 4952. - 2821-FROM - Until October, 2008, SMTP was defined in RFC 2821, while the body of the email was defined in RFC 2822. The term "2821-FROM" makes it clear that the address referred to is the
MAIL FROMinformation, while "2822-From:" refers to the address in the "From:" header seen by end users. Used in RFC 5598. - 5321-FROM - Evolution of 2821-FROM as from October, 2008, SMTP has been defined in RFC 5321.
- return address - Another term that comes from the letter analogy for email. used in RFC 5321, RFC 3834.
- From_ - When an email gets delivered to the user's email box, one file format that may be used is the mbox format. In this format, the email address from the
MAIL FROMcommand was placed on a line beginning with "From" followed by a single space, the "From_" term uses an underscore to represent the space to distinguish it from the "From:" mail header. In this mailbox format, lines in the actual email that begin with a "From " have to be escaped and changed into lines that begin with ">From ".
See also
[edit]Bounce address
View on Grokipedia<>), particularly in bounce messages themselves, to avoid infinite loops by preventing further error reports from being generated.[1]
In practice, the bounce address is distinct from the visible "From" header (defined in RFC 5322), which is used for user-facing identification, allowing organizations to route bounces to dedicated monitoring systems rather than individual mailboxes.[1] Effective handling of these addresses is critical for email deliverability, as accumulated bounces from invalid recipients can signal poor list maintenance to internet service providers, potentially leading to blocked domains or IP addresses.[2] For instance, bulk emailers often employ specialized bounce addresses to track and clean subscriber lists, ensuring compliance with anti-spam standards.[3]
Overview
Definition
A bounce address is the email address specified in the SMTP envelope sender field via the MAIL FROM command, designated to receive non-delivery reports (NDRs) or delivery status notifications (DSNs) when an email message cannot be successfully delivered to the intended recipient.[1][4] This address forms part of the SMTP transaction envelope, which is separate from the message content and is used exclusively by mail transfer agents (MTAs) for automated error reporting.[1] Unlike the "From" header in the visible email message, which is intended for the human recipient and may display the sender's name or a different address, the bounce address operates invisibly within the protocol layer to ensure reliable feedback on delivery failures.[1] It can be set to a null reverse-path (e.g., MAIL FROM:<>) in cases where no notification is desired, preventing delivery loops in error messaging.[1] When delivery fails, the receiving server generates a bounce message sent to the bounce address, incorporating SMTP reply codes such as 550 (indicating permanent failure, like a non-existent mailbox) along with diagnostic details from the server explaining the issue.[1] These notifications provide structured information on the failure type, aiding senders in troubleshooting without exposing the full original message content unless specified.[4]Purpose
The primary role of a bounce address is to serve as the envelope sender address to which non-delivery reports (NDRs) or delivery status notifications (DSNs) are directed when an email cannot be delivered, enabling the original sender to receive feedback on failures such as invalid recipient addresses or server issues.[5][6] This mechanism allows senders to identify and correct problems, such as typos in addresses or temporary server outages, thereby facilitating issue resolution without requiring manual intervention from email administrators.[6] Using a bounce address offers several key benefits in email handling. It enhances overall email reliability by supporting automated retry mechanisms for transient failures, as senders can act on detailed status reports to resend messages when appropriate.[6] Additionally, it helps prevent the accumulation of undeliverable mail on receiving servers by routing error notifications away from the recipient's inbox, reducing storage burdens and administrative overhead.[7] Furthermore, it ensures compliance with established email standards for status reporting, such as those outlined in DSN protocols, which provide structured information on delivery outcomes to improve system interoperability and user trust.[6][7] The concept of the bounce address emerged in the early days of networked email systems to address the challenges of managing increasing volumes of mail across distributed networks without relying on manual error handling.[8] It was formalized in RFC 822 in 1982, which standardized the Return-Path field as a definitive route back to the originator for delivery problem notifications, building on earlier ARPANET protocols like those in RFC 733.[5] Subsequent developments, including the DSN extensions in RFC 1891 (1996), refined this by allowing explicit requests for notifications under specified conditions, further automating feedback to handle the scale of modern email traffic.[6]Technical Aspects
Role in SMTP Protocol
In the Simple Mail Transfer Protocol (SMTP), the bounce address functions as the envelope sender, specified through the MAIL FROM command during the SMTP transaction to establish the reverse-path for delivery notifications. This reverse-path is distinct from the From: header in the message body, as the envelope information—including the bounce address—is used solely by mail transfer agents (MTAs) for routing and error reporting, while the header fields are intended for the recipient's interpretation.[9] The DSN (Delivery Status Notification) extension, defined in RFC 3461, enhances the SMTP protocol by allowing clients to request detailed reports on message delivery outcomes, such as success, failure, delay, or relay events. Through parameters like NOTIFY in the RCPT TO command, senders can specify conditions for notifications; for instance, FAILURE triggers reports for permanent delivery issues, while DELAY requests updates on temporary holdups. These reports include standardized status codes, where 4xx denotes temporary failures (e.g., 421 service unavailable) and 5xx indicates permanent errors (e.g., 550 mailbox unavailable), enabling more precise handling of non-delivery reports (NDRs) to inform senders of issues like invalid recipients or server errors.[10] During the SMTP protocol flow, the handshake begins with the sender MTA issuing the MAIL FROM command to set the bounce address, followed by RCPT TO for recipients and DATA for the message content; if the receiving MTA accepts the message but later encounters a delivery failure—such as an unreachable final destination—it generates a bounce message and routes it back to the envelope sender specified in the reverse-path. This post-acceptance failure handling ensures that transient issues during transfer do not immediately reject the transaction, but instead trigger asynchronous notifications to the bounce address.[11] A null sender, represented as an empty reverse-path (<>), is employed in the MAIL FROM command for automated messages like delivery status notifications themselves, preventing infinite bounce loops by indicating that no further replies or error reports should be generated to that path. This mechanism is particularly useful in scenarios involving system-generated emails, where the originator does not require or expect return notifications.[11]Configuration Methods
Configuring bounce addresses in email systems involves specifying the envelope sender (MAIL FROM) in SMTP transactions, which determines where delivery failure notifications are directed. This setup varies between server-side mail transfer agents (MTAs) and client-side tools or scripts. On the server side, MTAs like Postfix and Sendmail allow configuration of bounce addresses through dedicated parameters and rewriting rules. In Postfix, the envelope sender can be rewritten using maps such as sender_canonical_maps in the main.cf file, enabling global or conditional substitution of the sender address for outgoing mail; for example, mapping [email protected] to [email protected] to route all bounces to a central handler. Additionally, Postfix supports parameters like bounce_queue_lifetime to control how long undelivered messages are held before bouncing, defaulting to 5 days. For Sendmail, envelope sender rewriting is achieved via the .mc configuration file using features like MASQUERADE_AS to set a default domain and FEATURE(masquerade_envelope) to apply rewriting to the envelope sender, ensuring bounces are directed to a specified address rather than the original sender. These configurations are typically edited in the MTA's primary configuration files and reloaded without restarting the service.[12][12] Client-side integration in mail user agents (MUAs) like Thunderbird is limited, as they generally use the From header address as the default envelope sender during SMTP submission, with no native option to override it for bounces. Extensions such as SmartTemplate4 can customize headers but do not directly alter the envelope sender; instead, users rely on the upstream MTA for rewriting. For bulk email sending scripts, libraries in languages like Python (e.g., smtplib) or Perl allow explicit setting of the MAIL FROM parameter, often incorporating Variable Envelope Return Path (VERP) for per-recipient bounce tracking. VERP modifies the envelope sender to include encoded recipient information, such as owner-list+recipient=[email protected], enabling automated identification of bounced recipients without dedicated addresses per user. In Postfix, VERP is enabled via parameters like recipient_delimiter = + and smtpd_authorized_verp_clients to permit clients to use variable return paths.[13] Best practices recommend using dedicated bounce addresses, such as [email protected] or [email protected], to segregate failure notifications from primary inboxes and facilitate centralized processing. For high-volume operations, implement bounce processing scripts or tools like the Perl module Sisimai to parse DSN (Delivery Status Notification) messages, extract failure reasons, and update mailing lists accordingly, preventing repeated sends to invalid addresses.[14] These scripts can be triggered via .forward files or procmail recipes to handle incoming bounces automatically.[15] A common pitfall is bounce address forgery in spam campaigns, where attackers spoof the envelope sender to generate backscatter—unwanted bounce messages flooding innocent recipients. This occurs when mail servers generate DSNs for non-existent or invalid recipients targeted by spam. Mitigation involves deploying the Sender Rewriting Scheme (SRS), which rewrites the original sender address in forwarded mail to a local domain format (e.g., SRS0=hash=domain.com=[email protected]), preserving traceability while passing SPF checks and reducing backscatter risk. SRS was proposed by Meng Wong in 2003 and is implemented in MTAs like Postfix via srs_domain_name and related parameters.[16]Usage and Applications
In Email Delivery Systems
In bulk email operations, such as mailing lists and newsletters, bounce addresses serve as dedicated return paths to capture undeliverable messages, enabling senders to identify and remove invalid or unsubscribed addresses for maintaining list hygiene. For instance, platforms like Mailchimp automatically classify email addresses that generate hard bounces or repeated soft bounces as "cleaned contacts," preventing them from counting toward audience limits and ensuring campaigns target active recipients. This practice helps reduce overall delivery failures and improves engagement rates by focusing resources on valid subscribers.[17][18] System administrators leverage bounce addresses to monitor server health and diagnose delivery issues, analyzing bounce rates to pinpoint problems like full mailboxes, DNS resolution failures for MX records, or temporary server overloads. A healthy overall bounce rate is typically below 2%, with hard bounces ideally under 0.5%, allowing admins to calculate bounce-to-delivery ratios—such as bounced emails divided by successfully delivered ones—to assess system performance and trigger maintenance. For example, elevated soft bounces from full inboxes may indicate the need to enforce mailbox quotas, while persistent DNS-related hard bounces could signal network configuration errors requiring immediate resolution.[19][20][21] Bounce addresses integrate with protocols like IMAP and POP3 by routing notifications to dedicated mailboxes, where email clients or scripts retrieve and process them for user alerts on failed deliveries. In automated workflows, tools often employ cron jobs to periodically scan bounce logs from these mailboxes, generating reports on delivery trends and automating list updates without manual intervention. This setup, common in systems like AcyMailing, ensures timely processing of bounces to keep operations efficient.[22][23] In real-world scenarios, major ISPs such as Gmail use bounce processing to evaluate and maintain sender reputation through tools like Postmaster Tools, which track bounce rates as indicators of list quality. High bounce rates signal poor practices, like sending to outdated addresses, potentially leading to reduced inbox placement for future emails; for example, senders with rates exceeding 2% may see their domain flagged, prompting list cleaning to restore deliverability. This mechanism helps Gmail prioritize legitimate traffic while protecting users from low-quality senders.[24][25]In Anti-Spam and Security Contexts
In anti-spam efforts, bounce addresses play a critical role in addressing the backscatter problem, where mail servers generate unwanted non-delivery reports (NDRs) in response to spam messages that use forged sender addresses. These automated bounces, often sent to innocent recipients whose addresses were spoofed in the spam, contribute significantly to collateral junk mail, overwhelming inboxes and straining server resources. For instance, during large-scale spam campaigns, a single recipient might receive hundreds of backscatter messages daily from invalid deliveries.[16][26] Mitigation strategies for backscatter include callback verification, which involves the receiving SMTP server attempting a preliminary connection back to the claimed sender's domain during the initial SMTP session to confirm its existence and willingness to accept mail, thereby rejecting invalid or non-responsive senders early and avoiding unnecessary bounces. Another approach is the Sender Rewriting Scheme (SRS), which rewrites the envelope sender address during legitimate email forwarding to preserve SPF compliance, indirectly reducing the likelihood of erroneous bounces from forwarded spam that might otherwise fail authentication checks. Additionally, Bounce Address Tag Validation (BATV) tags the envelope sender with a cryptographic hash to verify the integrity of incoming bounces, ensuring only legitimate ones are processed.[27][28] Bounce addresses also aid in abuse detection by facilitating sender legitimacy checks in systems like challenge-response anti-spam filters, where a verification email is sent to the purported sender's address, and a subsequent bounce or failure to respond indicates potential forgery. In alignment with SPF and DKIM protocols, bounce addresses in the envelope sender (MAIL FROM) field are scrutinized during authentication; mismatches or failures can flag messages as suspicious, preventing the delivery of spoofed content. For example, if a bounce address does not align with the domain's SPF records, it triggers rejection, enhancing overall spam filtering efficacy. However, bounce addresses introduce security risks, such as harvesting attacks where attackers send mass emails to guessed addresses and use the resulting bounces to identify valid ones for phishing campaigns, refining their target lists efficiently. In denial-of-service (DoS) scenarios, floods of fake bounces can overwhelm servers by exploiting the processing overhead of NDR generation and delivery, potentially disrupting legitimate email flow. Countermeasures include implementing rate limiting on receiving servers to cap the number of bounces processed per sender or time period, alongside strict policies to discard bounces from unknown or suspicious origins.[29] Evolving standards have strengthened bounce address security; RFC 5321, published in 2008, formalized the envelope sender's role in SMTP while emphasizing protections against forgery through enhanced validation requirements during mail transfer. Modern practices, such as DMARC policies, mandate authentication of bounce addresses via SPF alignment or DKIM signatures to ensure reports reach legitimate destinations, with strict policies (p=reject) automatically discarding unauthenticated bounces to mitigate abuse.[1]Related Concepts
Key Terminology
In email systems, the envelope sender refers to the address specified in the SMTP MAIL FROM command during message transmission, which determines where delivery status notifications or bounces are returned, whereas the header sender is the address appearing in the message's From: header field, intended for display to the recipient.[11] These distinctions allow the envelope sender to be modified for bounce handling without altering the visible sender information.[30] A non-delivery report (NDR) is an automated message generated when email delivery fails, informing the sender of the issue and often including diagnostic details.[7] It serves as a common implementation of delivery status notifications specifically for failures.[4] In contrast, a delivery status notification (DSN) is a standardized mechanism for reporting the outcome of email delivery attempts, encompassing successes, failures, delays, or partial deliveries, as defined in the SMTP service extension.[4] DSNs enable senders to receive structured feedback on message status, including in bounce scenarios.[7] Backscatter denotes the unsolicited non-delivery reports or bounces sent to innocent third parties whose addresses have been forged in the envelope sender field of spam messages, resulting in collateral spam.[31] This occurs when receiving servers generate notifications for undeliverable spam, directing them to the spoofed address.[31] SMTP response codes provide standardized indications of delivery issues that trigger bounces. For instance, code 421 (service not available, closing transmission channel) signals a temporary server unavailability, such as resource limits, prompting a transient bounce.[32] Similarly, 550 (mailbox unavailable) indicates a permanent failure, like a non-existent recipient address, leading to a hard bounce.[32] These codes, part of the SMTP protocol's reply system, classify errors to guide bounce generation.[33] The Variable Envelope Return Path (VERP) is a technique that encodes recipient-specific information into the envelope sender address to enable precise identification of bounced messages, facilitating personalized bounce handling. It modifies the return path for bulk mailings to trace individual delivery failures without relying on DSN parsing.[34] The Mail Delivery Agent (MDA) is the software component responsible for receiving messages from the Mail Transfer Agent and storing them in the recipient's mailbox, or generating bounces if delivery fails locally.[35] MDAs play a key role in final delivery attempts and error reporting tied to bounce addresses.[35]Key Terms Glossary
- Bounce Address: A designated envelope sender address used to receive delivery failure notifications, often null or special to prevent loops.[11]
- Envelope Sender: The SMTP MAIL FROM address for routing bounces and status reports, distinct from message headers.[11]
- DSN: Delivery Status Notification, a protocol for automated reports on email delivery outcomes, including bounces.[4]
- NDR: Non-Delivery Report, a failure-specific DSN subtype detailing why a message could not be delivered.[7]
- Backscatter: Unwanted bounces directed to forged addresses due to spam processing, creating nuisance email.[31]
- VERP: Variable Envelope Return Path, an encoded return address for attributing bounces to specific recipients.
- MDA: Mail Delivery Agent, the system that finalizes email storage or initiates local bounces.[35]
