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."