John Peacock writes:
As Matt suggested, it is almost certainly easier to write a queue plugin than to embed that functionality in the core. An MTA, as a rule, should never rewrite a message (other than appending new headers). On the other hand, a queue plugin can act as a LDA (local deliver agent) and can therefore do anything it wants to the message (which has basically been accepted for delivery at that point).

Word trickery... esp. considering that many(?) use qpsmtpd as a proxy, and for many the whole MTA/MDA-thingie is so blurred up that we can only talk about them as different things mainly in spiritu or very "clean" setups. Even since SpamAssassin became famous enough I've had to rewrite e-mail bodies rewritten by some server which I don't control, and these bloody locally(ish) created "this message was classified as spam/virus/whatever, click here to read it anyways"-things which I rather get back into a real e-mails before I pass them on to some other server.
I took a look at serializing delivery (i.e. handling each recipient independently, which is what the OP was talking about doing) and it is surprisingly tricky to do right in the core (since you cannot accept for one rcpt and not the others). On the other hand, a queue plugin is pretty simple, since you are handed an already complete message; queue/maildir is an example (which doesn't actually serialize delivery).

Code technical reasons, well, that I can accept; even though I don't like the idea of rewriting 10 huge e-mails instead of just one, it's doable (and not that bad if done right).

  /Tony

Reply via email to