Currently pigeonhole supports reject which would generate a NDR for each message. (If I understand the current documentation)
Using Dovecot LMTP it would be more optimal to kick a 5xx back to the primary MTA to reject the delivery rather than generating more back scatter NDRs.
Anyone know if this is possible now (to forgo the NDR)'s or do we need to wait for ereject ? If so, how much work is involved?
-- Robert inoc.net!rblayzor http://inoc.net/
Am 14.01.2015 um 01:28 schrieb Robert Blayzor:
Currently pigeonhole supports reject which would generate a NDR for each message. (If I understand the current documentation)
Using Dovecot LMTP it would be more optimal to kick a 5xx back to the primary MTA to reject the delivery rather than generating more back scatter NDRs
and what would that change? nothing if you think about how mail works!
- the MTA receives the message
- the MTA confirms with 2xx status code
- later the delivery server rejects
- the MTA *must* create a bounce
just don't reject mails after you confirmed you have received them in the SMTP session and if you don't want a mail after that DISCARD it by consider legal implications - there is nothing between
On Jan 13, 2015, at 7:34 PM, Reindl Harald h.reindl@thelounge.net wrote:
and what would that change? nothing if you think about how mail works!
- the MTA receives the message
- the MTA confirms with 2xx status code
- later the delivery server rejects
- the MTA *must* create a bounce
just don't reject mails after you confirmed you have received them in the SMTP session and if you don't want a mail after that DISCARD it by consider legal implications - there is nothing between
The above is not entirely true. You are assuming that your MTA it's sending a 2xx accepting the message immediately before delivery via LMTP completes. With PRDR (in Exim for example, or without) a 5xx during the LMTP transport should issue a 5xx error back to the sending MTA, not a 2xx. Therefore, there would be no NDR generated by the receiving system. The senders MTA would have to generate the NDR, but that's not my problem at that point. Of course WITHOUT PRDR this is a little bit more of an issue since it would be a rejection for all recipients of the message.
-- Robert inoc.net!rblayzor http://inoc.net/
Am 14.01.2015 um 02:23 schrieb Robert Blayzor:
On Jan 13, 2015, at 7:34 PM, Reindl Harald h.reindl@thelounge.net wrote:
and what would that change? nothing if you think about how mail works!
- the MTA receives the message
- the MTA confirms with 2xx status code
- later the delivery server rejects
- the MTA *must* create a bounce
just don't reject mails after you confirmed you have received them in the SMTP session and if you don't want a mail after that DISCARD it by consider legal implications - there is nothing between
The above is not entirely true. You are assuming that your MTA it's sending a 2xx accepting the message immediately before delivery via LMTP completes. With PRDR (in Exim for example, or without) a 5xx during the LMTP transport should issue a 5xx error back to the sending MTA, not a 2xx. Therefore, there would be no NDR generated by the receiving system. The senders MTA would have to generate the NDR, but that's not my problem at that point. Of course WITHOUT PRDR this is a little bit more of an issue since it would be a rejection for all recipients of the message.
i assume a sane MTA like postfix with a queue and so be able to receive and confirm messages independent of the final destination - even if you use typically LMTP there could be an external transport for a RCPT and the same message can have internal and external destinations
so what you want in your OP is just DISCARD in a sieve script and there is no point in "Using Dovecot LMTP it would be more optimal to kick a 5xx back" when the desired result is DISCARD
why do you want the burden of keep the SMTP session with the client open until the mail is finally stored? that don't scale!
On Jan 13, 2015, at 8:30 PM, Reindl Harald h.reindl@thelounge.net wrote:
so what you want in your OP is just DISCARD in a sieve script and there is no point in "Using Dovecot LMTP it would be more optimal to kick a 5xx back" when the desired result is DISCARD
why do you want the burden of keep the SMTP session with the client open until the mail is finally stored? that don't scale!
Sieve is all about policy. A 5xx reject would let the sending server know the message could not be delivered due a failure. (ie: user policy rejection, without receiving MTA generating NDR backscatter). I would rather not just accept it and the message disappear into ether without the sender receiving any notification of why.
-- Robert inoc.net!rblayzor http://inoc.net/
Am 14.01.2015 um 02:40 schrieb Robert Blayzor:
On Jan 13, 2015, at 8:30 PM, Reindl Harald h.reindl@thelounge.net wrote:
so what you want in your OP is just DISCARD in a sieve script and there is no point in "Using Dovecot LMTP it would be more optimal to kick a 5xx back" when the desired result is DISCARD
why do you want the burden of keep the SMTP session with the client open until the mail is finally stored? that don't scale!
Sieve is all about policy
no - it is about *filter* mails
A 5xx reject would let the sending server know the message could not be delivered due a failure
which belongs in the MTA and not the LDA
(ie: user policy rejection, without receiving MTA generating NDR backscatter). I would rather not just accept it and the message disappear into ether without the sender receiving any notification of why.
hence you reject messages on MTA level before LMTP is called because taht happens in case of sender based filters in the envelope-level and in case of subject filters at least before the mailbody
On Jan 13, 2015, at 8:44 PM, Reindl Harald h.reindl@thelounge.net wrote:
A 5xx reject would let the sending server know the message could not be delivered due a failure
which belongs in the MTA and not the LDA
(ie: user policy rejection, without receiving MTA generating NDR backscatter). I would rather not just accept it and the message disappear into ether without the sender receiving any notification of why.
hence you reject messages on MTA level before LMTP is called because taht happens in case of sender based filters in the envelope-level and in case of subject filters at least before the mailbody
RFC5429 clarifies the need and why "ereject" should be used vs. reject with NDR.
https://tools.ietf.org/html/rfc5429
Maybe in your MTA at data time you just accept the message and bounce later (or just discard it). I have the flexibility and the choice not to.
-- Robert inoc.net!rblayzor http://inoc.net/
participants (2)
-
Reindl Harald
-
Robert Blayzor