--- In post...@yahoogroups.com, mouss <mo...@...> wrote:
>
> jeff_homeip a écrit :
> > --- In postfix-us...@yahoogroups.com, Victor Duchovni
> > <Victor.Duchovni@> wrote:
> >> On Sun, Feb 08, 2009 at 09:50:16PM -0800, Jeff Weinberger wrote:
> >>
> >>> I am trying to figure out the best way to map one domain to
> > another with
> >>> the same users...precisely the behavior I am trying to achieve is:
> > when
> >>> mail is sent (from outside, or from another user within my postfix
> >>> installation) to user@ I want it redirected to user@
> >>> - in otherwords, the user is preserved, but the domain is
> >>> translated/rewritten. To be more specific:
> >>>
> >>> user1@ gets re-routed to user1@
> >>> user2@ gets re-routed to user2@
> >> - Are you looking to rewrite just the envelope recipient, or also
> > message
> >>   From/To/Cc headers?
> >
> > It's only important to rewrite the envelope sender.
>
> you mean the envelope recipient.

yes, sorry, my typo.

 if so, use virtual_alias_maps. however,
> don't use "wildcard" virtual aliases. instead, generate one mapping for
> each user:
>
> us...@...     us...@...
> ...
>

that creates some complications...and might be too difficult

but why not use wildcard virtual aliases? You noted below that they break 
recipient
validations. Do you mean that smtp_recipient_restrictions won't work? at all or 
parts?

Wildcard virtual aliases seems like the best way....but I want to understand 
the implications
on everything esle before I proceed.

Thanks!

>
> The reason is that if you use
> @example.com  @example.org
> then this breaks recipient validation: smtpd will accept
> anything^example.com, then at delivery time, the user won't be found and
> a bounce will be generated. in short, you become a source of backscatter
> (you send bounces to innocents whose addresses were forged by spammers)

Unless I don't bounce unknown addresses....

>
> you can generate the individual mappings with a script. alternatively,
> if you store users in sql, you can use sql statements to generate these
> "on the fly". examples have been posted multiple times to the list (a
> long time ago, that said, but you may be lucky...).
>
>

it would be something like:

if (%d='domain1.com') then select %...@domain2..com from virtual_alias else 
select alias
from virtual_alias where address=%s

(that's not quite right in the syntax, but you get the idea). This wont' work, 
as I'd have to
write a special select clause for each domain I want to work this way.


> > The result I want
> > is that the message is delivered to *...@domain2.tld - if it has the
> > original To/Cc header that's fine, and probably desireable.
> >
>
> so you want virtual_alias_maps (yes, these apply to _all_ domains. don't
> confuse with virtual_alias_domains).
>
> >> - Is all mail first passed through an SMTP content_filter?
> >
> > Yes. All mail coming from outside my server is passed through
> > amavisd-new for spam/virus checking. Mail originating from my server
> > is passed through a specialized content filter. (via the submission
> > service)
> >
>
> you must disable rewrite except in one smtpd in a chain. see the FILTER
> README (look for no_address_mappings) or amavisd-new README.postfix.
>
> if you don't, then virtual aliases will be expanded twice (before and
> after the filter), which may result in duplicate mail (think of a "foo
> -> foo, bar", which becomes "foo -> foo, foo, bar" if expanded twice).
>

I already do that..thanks

> > It is important that this rewrite apply to messages coming from
> > outside as well as those originating on my server.
> >
>
> virtual_alias_maps apply to all mail.
>
> >> - Are all the original and rewritten recipients delivered to another
> > host
> >>   via SMTP, or is some of the mail delivered locally (local,
> > virtual, ...)?
> >
> > I'm not completely sure this answers your question, but the message
> > may be only to u...@... or to a number of addresses including
> > u...@... Only the "copy" of the message to u...@...
> > should get rerouted to u...@...
> >
> > both domain1.tld and domain2.tld are mine and my postfix instance is
> > the MX for them. domain1.tld is an alias domain and domain2.tld is a
> > virtual domain.
> >
> >>
> >>> My initial guess is to use recipient_canonical_maps and use a pcre
> > map:
> >>> /^(.*)@domain1.tld/   {$1)@domain2.tld
> >> This guess is wrong for many reasons, but I think it best to first
> >> understand what problem you are really trying to solve, before we
> >> tear apart the wrong answer to potentially the wrong question.
> >
> > Thank you...but I would also like to know if I can impose on your
> > time, what is wrong with this - it will help me better solve this and
> > future problems.
> >
>
> see above. wildcard virtual aliases and canonical break recipient
> validations.
>
>
> >[snip]
>



Reply via email to