Encaminhar todos os emails de um domínio para uma única conta ou arquivo, mas entregar outros domínios adequadamente

2

Eu tenho um servidor Linux que usa o Postfix para email. É em um ip dinâmico, então eu uso o parâmetro "relayhost" para enviar e-mail de saída através de um túnel ssh para outro servidor em um ip estático e de lá ele sai para o mundo real. Isso está funcionando bem desde aproximadamente 1998.

Atualmente, estou desenvolvendo alguns softwares para um cliente e ele envia e-mails para várias pessoas da organização desse cliente com base em informações de um banco de dados. Para meus testes iniciais, criei pessoas falsas que tinham endereços de e-mail como ptomblin+client1@{mydomain}.com, que funcionavam bem e enviaram todos os e-mails para mim. Mas agora estou trabalhando com um banco de dados ao vivo, e todos os endereços de e-mail são para pessoas reais na organização do cliente. Eu particularmente não quero enviar e-mail para as pessoas dizendo que o acesso ao sistema que eles pediram foi provisionado, então eu gostaria de uma maneira de redirecionar todos os e-mails para o domínio do cliente para o meu endereço de e-mail ou para um arquivo. / p>     

por Paul Tomblin 31.07.2012 / 19:54

2 respostas

3

Se bem entendi, você deseja que todos os e-mails destinados a example.com sejam entregues ao seu endereço de e-mail ou a um arquivo, em vez de serem encaminhados para o servidor especificado no relayhost:

passo 1: Adicione example.com a mydestination em main.cf para que o correio destinado a example.com seja entregue localmente.

etapa 2: Configure um catchall para example.com e envie todos os emails para o seu endereço de email ou um arquivo. Você pode, por exemplo, usar o pcre postfix para conseguir isso.

Passo expandido 2

O uso do pcre postfix é apenas uma maneira de conseguir isso entre muitos outros. De acordo com para este tutorial por garisson :

  1. Crie um usuário local mylocaluser e sua caixa de correio ou maildir
  2. Crie um arquivo chamado aliases-pcre com conteúdo:

    /@example\.com$/ mylocaluser
    

    adicione as seguintes linhas ao main.cf (se main.cf estiver em / etc / postfix):

    alias_database = hash:/etc/postfix/aliases
    alias_maps = hash:/etc/postfix/aliases, pcre:/etc/postfix/aliases-pcre
    
  3. Reinicie o postfix

Agora, todos os e-mails destinados a *@example.com devem ir para mylocaluser mailbox / maildir.

Novamente, isso é apenas um exemplo. Você pode usar qualquer outro método que melhor atenda às suas necessidades. Eu costumo usar muito o pcre porque ele permite que o regexp seja um pouco mais complexo.

No entanto, o acima não funcionaria porque você precisa de domínio virtual.

Aqui está uma configuração mínima de amostra:

(main.cf)
alias_database = hash:/etc/aliases
local_recipient_maps = 
relayhost = myotherserver.example.com
virtual_alias_maps = pcre:/etc/postfix/aliases-pcre
virtual_alias_domains = example.com
mydestination = localhost

Arquivo /etc/postfix/aliases-pcre

/@example\.com$/ somelocaluser
    
por 31.07.2012 / 20:23
2

Ok, Eric me aproximou do caminho certo , mas não chegou lá. Foi o que eu fiz:

  1. Em /etc/postfix/main.cf:

    virtual_alias_domains = example.com
    virtual_alias_maps = regexp:/etc/postfix/virtual_alias
    
  2. Em / etc / postfix / virtual_alias

    /@example\.com/ ptomblin
    

Um postfix reload depois e eu estava fora das corridas. (By the way, você não precisa fazer postmap em arquivos de expressões regulares, apenas hashs)

    
por 01.08.2012 / 01:11