Re: Delaying 2xx as long as possible with stream_by_xyz()
Steffen Kaiser <[email protected]>
| Newsgroups | gmane.mail.mimedefang |
|---|---|
| Message-ID | <alpine.DEB.2.11.1701270943030.16747@pc-2m63> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, 27 Jan 2017, Steffen Kaiser wrote: > On Thu, 26 Jan 2017, Kevin A. McGrail wrote: > >> If not, can we do interactive SMTP responses such as checking the helo >> values, then stream the messages to process it per domain or per recipient? Um, what do you mean with "interactive SMTP responses such as checking the helo values" I just forgot to point out the obvious: Which state you are returning to the sender, if your streamed messages return different status'? E.g. it could sent to recipient one, but not two and recipient three tempfailed. Maybe ... >> I can't find it documented, but I seem to remember that once you stream the >> messages per domain or per recipient, that you've given a 2xx DSN and >> closed >> the session. So if you then later find you want to decline, you have to >> generate a bounce. >> >> Any pointers appreciated especially if this is a milter limitation or an MD >> framework limitation that I can figure out a way around! > > "If users are in different domains, stream_by_domain() resends the > message (once to each domain) and returns 1 For example, if the original > recipients are [email protected], > [email protected] and [email protected], the original message is resent > twice: One copy to [email protected] and [email protected], and another copy to > [email protected]. Also, any subsequent scanning is > canceled (filter() and filter_end() will not be called for > the original message) and the message is silently discarded." > > It's the last sentence, IMHO. > > But you *can* delay, I think: > > sub filter_begin { > if (stream_by_recipient()) { > ### Here you: 1) register the message in order to identify it later again 2) TEMPFAIL the message 3) your streamed messages somehow register their status with 1) within their own MIMEDefang sessions / processing When the message is resent (maybe the list of recipients is different now), you check with the status and TEMPFAIL the message until you can make a decission. > return; > } > # Rest of filter_begin > } > > - -- Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEVAwUBWIsJ7VGgR0+MU/4GAQLAlgf/e/sDPQvNn8T7IzethW9Cg4yZLQ8ebkR0 H28JPIzY2oAZxHc9sOwTk5l+VzV+EedZ1hmGw0Cc0KYjAiozndR3qfhHJhc3Rt06 NKI9hd+XhIo/QKxW1HAc35tpdlJWvGUR4T0PMLHUNCE1s+iPNKKDCa7APua0YtEd fa1EeCqiWaBZQGaWnHi/w3dCeJ8n9AHGYyaNs7Rn5VVBpmeMk6+7Ln3Hfa/Bo/uv 3Cj2u0WLX+fxR7twsIhPrVcFMYMD5Uy3QAfv4Dk+BvV8/REtyNeI/87sfKkCaxJw c6o6oX7YQ2ntSmA+M75ffnZv9pUnpftYYS0HZOjKLKUjoObOSx7O6g== =BpRu -----END PGP SIGNATURE----- _______________________________________________ NOTE: If there is a disclaimer or other legal boilerplate in the above message, it is NULL AND VOID. You may ignore it. Visit http://www.mimedefang.org and http://www.roaringpenguin.com MIMEDefang mailing list [email protected] http://lists.roaringpenguin.com/mailman/listinfo/mimedefang