On Wed, 6 Mar 2002, Miquel van Smoorenburg wrote:
> It adds a member "dupbackptr" to struct address_item. For every
> duplicate found, dupbackptr is set to the struct address_item
> it is a duplicate from (hmm, perhaps 'dupfrom' is a better name).
>
> This way, we can much better decide when we build the envelope-to
> header how the duplicate addresses were collapsed and what the
> real original addresses were.
That's certainly one way of achieving what you want. Doing what some
other people want (not dropping duplicates) would require fundamental
redesign to incorporate a unique identification for each address
(currently it's the address itself). I had been thinking of that
problem when considering how hard this change would be.
I will look at your patch in due course (but not in a hurry) and think
about it for Exim 4. The only small worry is that I'm now very
cautious about adding to the address_item structure, because some
messages have thousands of addresses. However, memory gets cheaper and
cheaper...
> - in a .forward file of the following structure:
>
> myself
> other_user
>
> which is meant to keep a local copy and send a copy to 'other_user',
> it would be desireable to set the envelope-to header for the copy
> delivered to 'other_user' to 'other_user' instead of 'myself' since
> the message is in fact re-sent.
I disagree with this. Envelope-to is supposed to represent the envelope
that caused this delivery. Forwarding is redirecting rather than
resending. If you want to resend, you can use procmail and really resend.
Or even put in your .forward file a line like this:
|/usr/sbin/sendmail -odi other_user
But then, of course, the *sender* will also get changed. I believe that
is correct for "resending".
> - Because it's common in a .forwardfile to list ones own address
> to leave a local copy, perhaps a special syntax should be invented
> for that - I'm thinking of :self:
I'm not convinced that this bit of syntactic sugar is necessary.
> - For exim4, which I haven't looked at, you might want to do away
> with the global addr_duplicate list and add duplicates to the
> addresses themselves. This would be a tad cleaner.
In Exim 4, aliasfile/forwardfile/smartuser are all collapsed into one
router called redirect. The distinctions between aliasing and forwarding
are very small.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.