postfix manually bounce messages

Solution 1:

However, what you probably mean is to force-bounce a recipient, which is the real issue, not the message.

Asked before elsewhere in 2011. After setting up Wietse's configuration below, you could postmap, postfix reload, and flush the queue, forcing that recipient/message pairing to slam into the new transport rule.

Bob Proulx: I have been trying to deduce if it is possible to force a message waiting in the mail queue with temporary errors (domain name resolution failures) to bounce right now instead of waiting for the timeout.

Wietse says:

It would be incorrect to force a message to bounce. Messages can have multiple recipients. It would be more correct to force-bounce a recipient.

To flag a destination or recipient as undeliverable:

/etc/postfix/main.cf: transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport: typodomain.example error:5.1.2 Bad destination system address

Flagging one recipient in a queue file as undeliverable requires a lot of code that currently does not exist: 1) a way for postsuper to mark as "expired" one recipient in the middle of a list of recipients, 2) a way to extract from the defer logfile the record that says why that recipient was not yet delivered for use in the non-delivery notification, and 3) a way to mark that defer logfile record as "deleted" so that the problem won't be reported again.

Wietse

Solution 2:

No. It is not possible, as there is only minimal need of doing manual queue management. There are configuration parameters for doing it automatically: http://www.postfix.org/QSHAPE_README.html#deferred_queue and http://www.postfix.org/postconf.5.html#bounce_queue_lifetime (but remember the fatal downside of reducing bounce_queue_lifetime)

The best way would be to notify the sender about the delay and just wait until it bounces on its own: http://www.postfix.org/postconf.5.html#delay_warning_time