Utilisez Postfix pour transférer du courrier vers un domaine vers la même adresse sur un autre domaine


8

Existe-t-il un moyen de configurer Postfix pour accepter n'importe quel courrier pour un domaine (fourre-tout), puis de transférer ce courrier électronique au même destinataire dans un domaine différent, sans savoir si le destinataire existe réellement?

J'utilise Postfix avec un support MySQL pour les comptes virtuels.

Réponses:


8

Non, ce n'est pas directement possible. Il existe une exception sur la façon dont cela peut fonctionner, décrite dans http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Une autre solution grossière serait d'utiliser SQL (substr + concat) pour gérer cela pour vous dans le virtual_alias_maps.

Edit : Oh. Il y a une dernière possibilité. Utilisez le mécanisme de délégation de stratégie et retournez REDIRECT localpart@other-domain.examplelà où vous en avez besoin et DUNNOsi vous ne souhaitez pas réécrire.

Edit 2 : Inspiré par Squidly (mais sa solution ne fonctionne pas!), Vous pouvez configurer

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

et dans ce fichier mis

/^(.*)@adomain\.example/    $(1)@other-domain.example

(Attention au point échappé (\.) Dans la première colonne.) Personnellement, je préférerais cette version.


la troisième solution a fonctionné pour moi. cependant j'ai dû installer le postfix-pcrepaquet (ubuntu 12.10)
scytale

1

Le type de table pcre n'est pas disponible sur mon système, j'ai donc fait ce qui suit:

  • Dans /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • Dans /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

Si vous utilisez MySQL comme extrémité de stockage, je pense que vous pouvez spécifier un catch all forward comme ceci:

Transferts de table

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

Si je lis bien la documentation, cela signifierait que user1@example.com sera maintenant transféré à user1@yoursite.com, etc.

J'ai trouvé cela dans ce tutoriel howtoforge


0

Pas directement possible? Je l'ai trouvé très simple et direct sans SQL, expressions régulières ou mécanismes de politique.

Dans main.cf:

virtual_alias_domains = alias-destination1.com alias-destination2.com
virtual_alias_maps = hash:/etc/postfix/virtual

Dans /etc/postfix/virtual:

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

Envoi d'un e-mail de test depuis le serveur:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

Et le résultat réel dans mail.log (j'ai amavis sur le port 10025 en cours d'exécution):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

Ligne de touche séparée pour l'accentuation:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Selon la façon dont vous configurez votre Postfix, vous pourrez peut-être utiliser un alias pour transférer tout le courrier.

Éditer

Vous pouvez également configurer une redirection qui le fera facilement pour vous.

Dans /etc/postfix/main.cf ajoutez ceci:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

Puis dans /etc/postfix/forward_bcc.pcre ajoutez ceci:

/^user@olddomain.com/ user@newdomain.com

C'est un peu un hack mais cela fonctionnera pour transférer des utilisateurs spécifiques d'un domaine à un autre.

Vous pouvez également consulter cette page pour savoir comment effectuer une réécriture au sein de Postfix.


Peux-tu être plus précis? Je sais que je peux spécifier @somedomain.comde transférer tous les messages à une adresse spécifique , mais je veux savoir si je peux les transférer au même destinataire.
Abraham Vegh

dans / etc / aliases, configurez-le comme ceci. $ username: $username@newdomain.com
Squidly

@Squidly Votre modification n'est pas une expression régulière et ne fonctionnera pas. Vous commentez / etc / aliases ne fonctionnera pas car l'OP n'a que des utilisateurs virtuels.
mailq

@mailq. C'est LIVE sur mon serveur en ce moment. Cela fonctionne parfaitement pour plusieurs redirections. De plus, il n'a pas dit qu'il s'agissait UNIQUEMENT d'utilisateurs virtuels. Il offrait également des options à examiner.
Squidly
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.