SMTP para vários domínios em interfaces virtuais

1

A configuração é assim (Ubuntu 9.10):

eth0: 1.1.1.1 name.isp.com

eth0:0 2.2.2.2 example2.com

eth0:1 3.3.3.3 example3.com

example2.com e example3.com são aplicativos da web que precisam enviar e-mails para seus usuários.

2.2.2.2 aponta para example2.com e vice-versa (A / PTR). MX - > Google. O Google lida com todos os e-mails recebidos.

3.3.3.3 aponta para example3.com e vice-versa (A / PTR). MX - > Google. O Google lida com todos os e-mails recebidos.

Requisitos:

  1. A entrega local deve ser desativada (deve ser entregue ao servidor especificado do MX), para que o seguinte funcione (observe que não há nenhum usuário local bob na máquina, mas há um usuário de email bob existente):

    echo "Test" | mail -s "Test 6" [email protected]

  2. Eu preciso ser capaz de especificar de qual IP / nome de domínio o e-mail será entregue ao enviar um e-mail.

Eu lutei com o sendmail. Com pouca sorte.

Veja algumas informações de depuração:

sendmail -d0.12 -bt < /dev/null

Canonical name: name.isp.com
UUCP nodename: host
    a.k.a.: example2.com
    a.k.a.: example3.com
    ...

O Sendmail sempre usa o nome canônico (retirado da eth0). Não encontrei nenhuma maneira de selecionar um dos codinomes do UUCP. Usa-o para enviar email:

echo -e "To: [email protected]\nSubject: Test\nTest\n" | sendmail -bm -t -v

[email protected]... Connecting to [127.0.0.1] via relay...
220 name.isp.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9ubuntu1; Wed, 31 Mar 2010 16:33:55 +0200; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO name.isp.com

Estou bem com outras soluções SMTP. Eu olhei rapidamente para nbsmtp, msmtp e nullmailer, mas não tenho certeza de que eles podem lidar com a desativação da entrega local e a seleção de domínios diferentes ao enviar e-mails.

Eu também sei sobre spoofing campo remetente usando mail -a "From: <[email protected]>" , mas parece ser uma meia solução (e-mails ainda são enviados do domínio isp.com em vez do exemplo2, de modo que os registros PTR não são usados e há mais risco de ser sinalizado como spam / spammer).

    
por Paweł Gościcki 31.03.2010 / 18:22

3 respostas

1

Eu não sei sobre sendmail , mas com exim você especifica roteadores e transportes. Os roteadores pegam o e-mail de / para endereços e decidem qual transporte usar. Para (1), basta criar transportes smtp e nenhum transporte local. Para (2), você pode especificar uma opção interface ao criar um transporte. Um arquivo de configuração seria algo assim (não um arquivo de configuração completo e não testado):

begin routers

example2_route:
 driver = dnslookup
 condition = ${eq{$sender_address_domain}{example2.com}} # 'from' domain is example2.com
 transport = example2_smtp

example3_route:
 driver = dnslookup
 condition = ${eq{$sender_address_domain}{example3.com}}
 transport = example3_smtp

begin transports

example2_smtp:
 driver = smtp
 interface = 2.2.2.2

example3_smtp:
 driver = smtp
 interface = 3.3.3.3
    
por 01.04.2010 / 15:33
0

Você tentou usar o mailertable ? Mapeamento

do.main    esmtp:do.main

deve funcionar e fazer o sendmail usar o registro MX (não testado).

    
por 02.02.2011 / 19:10
0

Eu configurei várias instâncias de postfix da maneira que você descreve para servir mensagens de saída para dois namespaces. É um procedimento bastante envolvido (o meu é mais assim desde que eu também sou assinatura DKIMProxy) mas um bom ponto de partida é: link

Eu documentei tudo (no RHEL 5.6) para poder fornecer mais detalhes, então me avise se você estiver indo nessa rota - posso fornecer informações adicionais.

A abordagem do Exim postada por Dan parece mais clara - eu fiquei com o postfix / DKIMProxy desde que usei essa abordagem no passado.

Felicidades

    
por 03.02.2011 / 18:10