On 8 Aug 2001, John R. Levine wrote:

> Well, actually, it should be bounced to A-X=V@H, and that's exactly
> where it goes since that's the address that VERP creates.  (I presume
> M was a typo for H there.)

Oops. Yes, it should read A-X=V@H.

> >Unfortunately, the return address in the scenario described above is
> >
> >     A-B-X=V@M
> 
> No, it's not.  Qmail rewrites target virtual domain addresses at the
> time they're delivered, and virtual domain handling doesn't rewrite
> return addresses at all, ever.

*Yes, it is* (when M is replaced with H). I tested it (I did not test
the patch). I consulted the source code.

The problem lies in the fact the message is injected with a "proto-VERP"
(*), with A-@H-@[] or something like that instead of a real return path.
This pattern is recognized by qmail-send and transformed into a real VERP
path during delivery (see senderadd()). But recipient addresses are
rewritten according to controls/virtualdomains before the transformation
is done and their *rewritten* forms are used both as a destination
address and a value for the construction of VERPs (see comm_write()). Of
course, this is bad whenever the rewritten form is different from the
original one.

> >... A *completely untested* patch is here:
> 
> Too bad you didn't test it, you could have avoided wasting a lot of
> time.

I guess I am wasting much more time trying to explain the problem. :P

> I misunderstood what you were arguing last time.  The only time you
> might have to consult control/virtualdomains to handle a VERP is if
> the domain sending the VERP'ed mail is itself a virtual domain.

No, the problem is when the domain *receiving* it is virtual and local,
and when the message is injected with a "proto-VERP". Of course, hardcoded
VERPs are not mangled by qmail but a mailing list software would have to
inject one copy per recipient into the queue in order to be able to use
them and this would be quite inefficient (**). If it uses "proto-VERPs"
(qmail-inject with QMAILINJECT=r uses them, ezmlm uses them too), it can
inject a single multi-recipient message only...assuming qmail-send won't
do anything stupid.

Is it clear now?

(*) This is no official (DJB's) terminology, just an ad hoc name
invented to label the concept in question in this text.
(**) Arguments against multi-RCPT SMTP are not applicable here.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."

Reply via email to