Como rotear algumas contas de email de um domínio com transport_maps para outro MX se o usuário não existir localmente?

4

O servidor MX no meu domínio example.com aponta para o meu servidor Postfix. No entanto, também configurei uma conta do Google Apps responsável pelos e-mails de example.com .

Eu quero que todos os e-mails sejam direcionados para o servidor Postfix (isso já é feito pela configuração MX na zona DNS), mas desejo que alguns usuários desse domínio sejam encaminhados para o aspmx.l.google MX . com .

Eu fiz isso com o parâmetro transport_maps. Aqui está o arquivo / etc / postfix / transport .

[email protected] smtp:[aspmx.l.google.com]

O problema é que smtpd_reject_unlisted_recipient é definido como yes por padrão, mas o postfix verifica a existência do usuário antes de aplicar o mapa de transporte. Meu servidor Postfix não conhece o usuário test para esse domínio, então ele simplesmente rejeita o e-mail.

Eu gostaria de fazer o roteamento de transporte acontecer antes da verificação da existência do destinatário (na minha configuração atual, apenas o Google SMTP está ciente da existência do teste do usuário). Isso é possível?

Nota: local_recipient_maps não funciona para mim porque eu uso o transporte virtual com o dovecot. Portanto, a tabela de destinatários é virtual_mailbox_maps.

    
por Fox 03.05.2014 / 18:00

2 respostas

1

Why doesn't the routing happen before the recipient existence check? Isn't there is way? When I route emails, I mean "The current Postfix doesn't handle anything and just forwards email to another server which is fully responsible for the config".

Não, não é assim que o postfix vai funcionar. Verificações de existência de destinatário e roteamento de e-mail eram duas atividades diferentes para o postfix. Verificações de existência de destinatário foram realizadas quando aceitando email . O processo que o realiza foi smtpd . O roteamento de e-mail foi realizado quando entrega de e-mail . O processo que o realizou foi reescrita trivial

No comentário, você menciona que usa o agente de entrega virtual do postfix para entregar e-mails. Vou lhe dizer que é possível obter informações não-redundantes na configuração do postfix. MAS você deve alterar a configuração atual do postfix.

Para alcançar seu objetivo, devemos mover todos os domínios em virtual_mailbox_domain class para relay_domains class. Em seguida, use dovecot LDA para entregar e-mail na caixa de correio correta. A classe de domínios de retransmissão possui um parâmetro especial chamado relay_recipient_maps para verificar a existência do destinatário.

A boa notícia é que você pode usar relay_recipient_maps junto com transport_maps . Por quê? Porque relay_recipient_maps usado apenas para verificar a existência do usuário. A cadeia do valor / lado direito em transport_maps foi ignorada quando a verificação de existência do destinatário. Snippet de man postconf .

Optional lookup tables with all valid addresses in the domains that match $relay_domains. Specify @domain as a wild-card for domains that have no valid recipient list, and become a source of backscatter mail: Postfix accepts spam for non-existent recipients and then floods innocent people with undeliverable mail. Technically, tables listed with $relay_recipient_maps are used as lists: Postfix needs to know only if a lookup string is found or not, but it does not use the result from table lookup.

Para completar, aqui a configuração do postfix para esta configuração. Créditos para sebokopter para a ideia .

#main.cf
# rename virtual_mailbox_domains to relay_domains
relay_domains = mydomain.example.com
# put the parameter value of virtual_mailbox_maps AND transport_maps parameter
relay_recipient_maps = hash:/my/virtual_mailbox_maps, hash:/my/transport_maps

transport_maps = hash:/my/transport_maps
relay_transport = dovecot:

#master.cf
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
    
por 05.01.2015 / 09:26
0

Tendo o mesmo problema, para consertar, acabei de criar os usuários virtuais em meu banco de dados e permitiu que o postfix concluísse a verificação da existência do destinatário e fizesse o novo roteamento para um servidor MX diferente.

Eu sei que é um truque, pessoalmente, funciona para mim, já que as contas que estão sendo reencaminhadas eventualmente serão realocadas para o mesmo MX e, portanto, as contas de usuário são válidas.

    
por 27.02.2017 / 05:11

Tags