Postfix: virtual_alias_maps entregando tudo para um usuário apesar do novo domínio

1

Eu tenho uma instalação de postfix que manipula e-mail para alguns domínios, para os quais todos os e-mails vão para um usuário local real ( cmb ), e eu quero adicionar um novo domínio (vamos chamá-lo example.org ) para um segundo usuário, mas tudo está sendo entregue para cmb . Aqui está o /etc/postfix/virtual :

[email protected] cmb
@chris.boyle.name cmb
@cmb.is-a-geek.org cmb
@example.org newperson

Aqui está a maior parte de /etc/postfix/main.cf , arquivo completo sob solicitação. Eu não defini luser_relay .

myhostname = nova.chris.boyle.name
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = chris.boyle.name
mydestination = chris.boyle.name, nova.chris.boyle.name, nova, localhost.localdomain, localhost
mynetworks_style = host
mailbox_command = procmail -a "$EXTENSION"
virtual_alias_domains   = cmb.is-a-geek.org example.org
virtual_alias_maps      = hash:/etc/postfix/virtual
smtpd_sender_login_maps = hash:/etc/postfix/virtual

Aqui está o /etc/aliases :

# See man 5 aliases for format
postmaster: cmb
root: cmb

Observe que aliases.db e virtual.db são ambos mais recentes que suas contrapartes de texto simples, e postfix foi reiniciado sem efeito. Um email de teste para [email protected] faz isso em mail.log (eu editei este extrato de log para tornar o domínio example.org ).

Aug 30 12:48:59 nova postfix/smtpd[32520]: 795B53D558: client=goggins.uwcs.co.uk[89.16.166.19]
Aug 30 12:48:59 nova postfix/cleanup[32530]: 795B53D558: message-id=<[email protected]>
Aug 30 12:48:59 nova dkim-filter[2074]: 795B53D558 external host goggins.uwcs.co.uk attempted to send as uwcs.co.uk
Aug 30 12:48:59 nova dkim-filter[2074]: 795B53D558 ASP query: missing parameter(s) in policy data
Aug 30 12:48:59 nova spamd[2385]: spamd: connection from localhost [127.0.0.1] at port 38371 
Aug 30 12:49:00 nova spamd[2385]: spamd: using default config for [email protected]: /srv/chris.boyle.name/spamassassin/user_prefs 
Aug 30 12:49:00 nova spamd[2385]: spamd: processing message <[email protected]> for [email protected]:1000 
Aug 30 12:49:05 nova spamd[2385]: spamd: clean message (-5.2/5.0) for [email protected]:1000 in 5.3 seconds, 1002 bytes. 
Aug 30 12:49:05 nova spamd[2385]: spamd: result: . -5 - AWL,BAYES_00,LOCALPART_IN_SUBJECT,RCVD_IN_DNSWL_MED,SPF_PASS,UNPARSEABLE_RELAY scantime=5.3,size=1002,[email protected],uid=1000,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=38371,mid=<[email protected]>,bayes=0.000000,autolearn=ham 
Aug 30 12:49:05 nova postfix/qmgr[32518]: 795B53D558: from=<[email protected]>, size=966, nrcpt=1 (queue active)
Aug 30 12:49:05 nova postfix/smtpd[32520]: disconnect from goggins.uwcs.co.uk[89.16.166.19]
Aug 30 12:49:05 nova postfix/local[32533]: 795B53D558: to=<[email protected]>, orig_to=<[email protected]>, relay=local, delay=6.1, delays=6.1/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Aug 30 12:49:05 nova postfix/qmgr[32518]: 795B53D558: removed

Observe que ele foi entregue a cmb no final: adoraria saber por quê.

    
por Chris Boyle 30.08.2009 / 17:19

1 resposta

2

Robot101 me ajudou a resolver isso. O truque é que virtual_alias_maps reciclará efetivamente até que o endereço permaneça inalterado, e as partes locais não qualificadas no lado direito do mapa serão qualificadas com myorigin , então isso acontece:

[email protected]  -> [email protected] -> [email protected]

Por isso, posso contornar isso alterando myorigin para nova.chris.boyle.name (e corrigindo a canonização do meu endereço (usando canonical_maps ) para usar @chris.boyle.name nos endereços dos remetentes). Desta forma, o mapeamento é em [email protected] , que o mapa não irá alterar mais, e que ainda tem esta máquina como seu destino final. Como alternativa, eu poderia ter qualificado totalmente os mapeamentos com @nova.chris.boyle.name .

    
por 31.08.2009 / 02:52