Bounce messageA bounce message or just "bounce" is an automated message from an email system, informing the sender of a previous message that the message has not been delivered (or some other delivery problem occurred). The original message is said to have "bounced". This feedback may be immediate (some of the causes described here) or, if the sending system can retry, may arrive days later after these retries end. More formal terms for bounce message include "Non-Delivery Report" or "Non-Delivery Receipt" (NDR), [Failed] "Delivery Status Notification" (DSN) message, or a "Non-Delivery Notification" (NDN).[1] ClassificationAlthough the SMTP is a mature technology, counting more than thirty years, its architecture is increasingly strained by both normal and unsolicited load.[2] The email systems have been enhanced with reputation systems tied to the actual sender of the email, with the idea of recipient's email servers rejecting the email when a forged sender is used in the protocol.[3] Therefore, two types of email bounces have been created: hard bounces and soft bounces.[4] Both of them affect the IP reputation of the sender because the Email Service Providers (ESPs) consider the total bounce rate as a decision factor when directing the email into a user's Inbox. Briefly, the total bounce rate is calculated as the sum of the hard bounce rate and soft bounce rate. Hard bouncesHard bounces are permanent and they score higher in terms of sender's IP damage. Hard bounces occur when the sender's mail server determines that there is a high likelihood that the recipient is unavailable and is likely to remain so. A few of the occasions when hard bounces occur are when the recipients of the email find themselves in one of the following situations: incorrect identifier/incorrect domain (such as a typo in the email address or in the domain) or their server does not accept emails anymore. In this case, removal of the email addresses that bounce back is mandatory. Soft bouncesSoft bounces are temporary. A bounced message that experiences a soft bounce may be tried to be redelivered at another time.[5] Soft bounces happen when the recipient of the email has either a full Inbox and therefore no space to store another email is available, or a limit on the size of the emails that it is allowed to receive has been reached. Additional situations in which a soft bounce appears is a block set up on the recipient's email to mark a certain sender as a 'spam' sender, or to blacklist a certain sender. Moreover, a temporary suspension of the recipient's email or a temporary error on the server are also causes of a soft bounce. Delivery errorsErrors may occur at multiple places in mail delivery. A sender may sometimes receive a bounce message from their own mail server, reporting that it has been unable to send a message, or alternatively from a recipient's mail server reporting that although it had accepted the message, it is unable to deliver it to the specified user. When a server accepts a message for delivery, it is also accepting the responsibility to deliver a bounce message in the event that delivery fails. Bounce due to lack of disk spaceWhen an e-mail arrives at the destination server for an address (such as mymail.example, when sending to alice@mymail.example), it may be that the mail daemon is unable to deposit the message in the specified user's mailbox if the underlying hard drive of the server has insufficient space. Bounce due to unreachable destinationWhen sending an e-mail, the service from which the e-mail is sent may be unable to reach the destination address. In such case, the sender would receive a bounce message from their own mail server. Common causes for mail servers being unable to reach a destination:
Bounce from forged messageUsers may receive erroneous bounce messages about messages they never actually sent. This can happen in particular in the context of email spam or email viruses, where a spammer (sender) may forge a message to another user (intended recipient of spam), and forges the message to appear from yet another user (a third party). If the message cannot be delivered to the intended recipient, then the bounce message would be "returned" to the third party instead of the spammer. This is called backscatter. Other causesHad the library.example mail server known that the message would be undeliverable (for instance, if Jill had no user account there) then it would not have accepted the message in the first place, and therefore would not have sent the bounce. Instead, it would have rejected the message with an SMTP error code. This would leave Jack's mail server (at store.example) the obligation to create and deliver a bounce. TerminologyBounces are a special form of autoresponder. Auto-responses (automatic replies) are mails sent by a program—as opposed to a human user—in reply to a received mail and sent to the bounce address. Examples of other auto replies are vacation mails, challenges from challenge-response spam filtering, replies from list servers, and feedback reports. These other auto replies are discussed in RFC 3834: auto replies should be sent to the The Today these paths are normally reduced to ordinary email addresses, as the old SMTP 'source routing' was deprecated in 1989; for some historical background info see Sender Rewriting Scheme. One special form of a path still exists: the empty path In a strict sense, bounces sent with a non-empty The remaining bounces with an empty NDRs are a basic SMTP function. As soon as an MTA has accepted a mail for forwarding or delivery it cannot silently delete ("drop") it; it has to create and send a bounce message to the originator if forwarding or delivery failed. Bouncing vs. rejectingExcluding MDAs, all MTAs forward mails to another MTA. This next MTA is free to reject the mail with an SMTP error message like "user unknown", "over quota", etc. At this point the sending MTA has to bounce the message, i.e. inform its originator. A bounce may arise also without a rejecting MTA, or as RFC 5321 puts it:
This rule is essential for SMTP: as the name says, it's a 'simple' protocol, it cannot reliably work if mail silently vanishes in black holes, so bounces are required to spot and fix problems. Silently dropping messagesToday, however, it can be common to receive mostly spam emails, which usually uses forged
Quoting again RFC 5321, section 6.2:
Not validating the sender is an inherent flaw in today's SMTP, which is without the deprecated source routes mentioned earlier. This is addressed by various proposals, most directly by BATV and SPF. Causes of a bounce messageThere are many reasons why an email may bounce. One reason is if the recipient address is misspelled, or simply does not exist on the receiving system. This is a user unknown condition. Other reasons include resource exhaustion — such as a full disk — or the rejection of the message due to spam filters. In addition, there are MUAs that allow users to "bounce" a message on demand.[7] These user-initiated bounces are bogus bounces; by definition, a real bounce is automated, and is emitted by a MTA or MDA. Bounce messages in SMTP are sent with the envelope sender address Typically, a bounce message will contain several pieces of information to help the original sender in understanding the reason their message was not delivered:
RFC 3463 describes the codes used to indicate the bounce reason. Common codes are 5.1.1 (Unknown user), 5.2.2 (Mailbox full) and 5.7.1 (Rejected by security policy/mail filter). FormatThe format for the reporting of administrative messages is defined by RFC 6522. A DSN may be a MIME multipart/report message composed of three parts:
The second part of a DSN is also quite readable. It is essential to understand which MTA played which role. The Reporting-MTA is responsible for composing and sending the DSN. When a Remote-MTA rejects a message during an SMTP transaction, a field Diagnostic-Code of type smtp may be used to report that value. Note that beside the numerical 3-digit value, the SMTP response contains itself a human readable part. The information Remote-MTA: dns; smtp.store.example [192.0.2.3]
Diagnostic-Code: smtp; 550 No such user here
while talking to smtp.store.example [192.0.2.3] >>> RCPT TO:<nonexistinguser@store.example> <<< 550 No such user here See also
Related RFCs
References
External links |