jeff_homeip a écrit : > --- In postfix-us...@yahoogroups.com, Victor Duchovni > <victor.ducho...@...> 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 u...@... I want it redirected to u...@... >>> - in otherwords, the user is preserved, but the domain is >>> translated/rewritten. To be more specific: >>> >>> us...@... gets re-routed to us...@... >>> us...@... gets re-routed to us...@... >> - 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. if so, use virtual_alias_maps. however, don't use "wildcard" virtual aliases. instead, generate one mapping for each user: us...@example.com us...@example.org ... 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) 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...). > 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). > 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...@domain1.tld or to a number of addresses including > u...@domain1.tld. Only the "copy" of the message to u...@domain1.tld > should get rerouted to u...@domain2.tld. > > 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]