<domain>
The DSN extension lets the sender ask the receiver to send a report on the message’s fate — delivered, delayed, bounced. The request is passed as parameters of the MAIL FROM and RCPT TO commands and arrives together with the message submission. The line cancels passing it on.
The receiver announces the extension in its reply to EHLO, among the lines with code 250. As long as the node sees this announcement and the line is off, the requests go out.
The difference from the other lines of the family is that data is lost here, not a mechanism. By turning off pipelining, you slow down the conversation; by turning off DSN, you stop receiving reports that someone at submission ordered.
Leave it off if you do not know who requests reports. The request comes with submission; the node only passes it on.
Enable it for a receiver that responds with garbage. There are servers that announce the extension and send unparseable reports in response; there turning it off is appropriate.
Do not confuse it with bounces. A bounce always arrives regardless of this line: it is part of the ordinary conversation, not an extension.
# the receiver announces DSN and sends unparseable reports <domain broken-dsn.example.com> ignore-dsn true</domain>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
1 relation
pmta show settings broken-dsn.example.com/vmta1 | grep -i ignore-dsn grep -i '250-DSN' /var/log/pmta/pmta.log | tail -10
3 articles
◇How the policy for a receiver is assembledSettings are assembled from the most general pattern to the most precise; the order of blocks in the file means nothing.◇Backoff mode — the queue's second personalityA queue that a receiver has started refusing switches to a parallel set of limits, retries and routes — ten directives that act only in this mode.◇Reputation monitoring inside the nodeThe engine itself watches the receiving servers’ replies and changes the queue mode on a pattern match — a reaction within the connection, not through telemetry.