Redirecionando emails com curingas para um email com postfix

6

Estou criando um sistema de e-mail de devolução, onde e-mails podem responder a mensagens no meu site.

No entanto, quando os emails são enviados ao usuário que contém a mensagem anterior, o campo Reply-To contém um email como [email protected] (que contém o ID no final).

Se o usuário responder, a mensagem de resposta será enviada de volta para [email protected] , o que obviamente não tem sua própria caixa de correio, exceto o [email protected] .

Como eu redirecionaria todas as mensagens recebidas provenientes de um curinga específico notification-message-*@mysite.com to [email protected] ? Eu fiz alguma pesquisa, mas nenhuma parte sólida funcionou, incluindo o luser_relay = [email protected] e colocando notification-message-* na tabela de aliases do postfix, o notification@ tem um Maildir, então os emails iriam para ele.

Um diagrama conceitual:

Estou usando o Ubuntu 11.04.

    
por MacMac 05.10.2012 / 20:58

4 respostas

2

Eu estaria inclinado a resolver isso usando recipient_delimiter .

Se você não se importar de usar endereços Reply-To um pouco diferentes, defina:

recipient_delimiter = +

na sua configuração e, em seguida, envie para, por exemplo, [email protected] (observe o + ) será entregue ao usuário notification (supondo que não haja regras / usuários mais específicos que correspondam a notification+message-988742 ).

Você poderia tentar definir recipient_delimiter = - (para poder usar os Reply-To cabeçalhos como estão na pergunta), mas não sei como isso funcionaria com várias instâncias do delimitador no lado esquerdo e não tenho um postfix para verificar.

    
por 08.10.2012 / 16:20
10

Como foi dito mschuett, você pode usar o regexp

Primeiro verifique se o postfix suporta regexp:

root @ mail / # postconf-m | grep regexp
regexp
root @ mail / #

Crie o arquivo / etc / postfix / aliases-regexp e adicione a ele seu regexp

root @ mail / # cat /etc/postfix/aliases-regexp
/notification-message-[0-9]+@example\.net/ [email protected]
root @ mail / #

Execute o postmap e verifique se funciona:

root @ mail / # postmap /etc/postfix/aliases-regexp
root @ mail / # postmap -q [email protected] regexp:/etc/postfix/aliases-regexp
[email protected]
root @ mail / #

Se tudo estiver OK, adicione este arquivo ao seu banco de dados de alias

Exemplo:

root @ mail / # cat /etc/postfix/main.cf | grep ^alias_maps
alias_maps = hash:/etc/aliases regexp:/etc/postfix/aliases-regexp
root @ mail / #

Se você estiver usando domínios virtuais, adicione esse arquivo ao seu virtual_alias_maps

Exemplo:

root @ mail / # cat /etc/postfix/main.cf | grep ^virtual_alias_maps
virtual_alias_maps = mysql:/etc/postfix/mysql/alias.conf regexp:/etc/postfix/aliases-regexp
root @ mail / #

Não se esqueça de reiniciar o postfix.

Boa sorte!

    
por 10.10.2012 / 23:43
2

Mapas de alias ( virtuais , local , ...) funcionará em combinação com o formato regexp_table . Mas se você compilou no PCRE, então você também pode usar o formato pcre_table.

Caso contrário, você deve procurar por "Postfix catch-all", que é um pouco mais ganancioso.

    
por 07.10.2012 / 15:07
0

Crie uma regra usando "com palavras específicas no endereço do remetente". Ele aceita várias palavras como "ou", mas não vejo como fazer isso com um "e". Talvez isso te leve o suficiente.

    
por 15.11.2018 / 15:08