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.

Abraham Vegh
la source

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 [email protected]là 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.

mailq
la source
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
    
Richard Hansen
la source
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 [email protected] sera maintenant transféré à [email protected], etc.

J'ai trouvé cela dans ce tutoriel howtoforge

HectorMalot
la source
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:<[email protected]>
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <[email protected]>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <[email protected]>                                                                                                                   
To: [email protected]                                                                                                                                
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=<[email protected]>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<[email protected]>, 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] <[email protected]> -> <[email protected]>, Queue-ID: 5C61F41AE5, Message-ID: <[email protected]>, 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=<[email protected]>, 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=<[email protected]>, orig_to=<[email protected]>, 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
BaseZen
la source
-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:

/^[email protected]/ [email protected]

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.

Squidly
la source
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: [email protected]
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