Enviando e-mail de vários hosts em uma instância usando o Amazon SES e o Exim4

3

Suponha que eu tenha alguma instância em execução no Amazon EC2:

 somehost.example.com

Esta instância hospeda um certo número de aplicativos ou sites para outros domínios:

 www.example.com
 web.example.org
 etc.

Este host está configurado para usar o exim4 para fazer interface com o Amazon SES para enviar email. No Amazon SES, cada domínio é permitido separadamente como um remetente válido:

www.example.com
web.example.org
etc.

No entanto, como seria de esperar, o FQDN da instância e o usuário em execução estão sendo usados como o remetente de cada e-mail, portanto, todos os e-mails parecem ter origem em:

[email protected]

Certamente, posso configurar o Amazon SES para permitir emails de algumhost.exemplo.com, e ainda posso adicionar um envelope 'From: "Whoever" <[email protected]>' aos e-mails no nível do aplicativo.

O que eu estou querendo saber é, (a) é uma solução aceitável, e se não, (b) qual configuração eu poderia explorar para mostrar que o correio para cada domínio (por exemplo, example.com) parece ter origem diretamente em um " something.example.com "servidor em vez do host real. Suponho que isso envolve a criação de uma entrada de DNS hostname.example.com e apontá-la para o servidor, mas além disso, estou perdido em como configurar o exim ou o aplicativo para permitir isso.

    
por futureal 04.08.2012 / 23:58

2 respostas

2

Você pode configurar o exim para ocultar o nome do correio local no correio de saída. Além disso, você deve configurar o seu servidor exim principal para usar um smarthost, neste caso, a coisa amazon SES.

Vamos supor que cada site seja executado em seu próprio servidor virtual, www.example.com ( 192.0.2.1 ) e web.example.com ( 192.0.2.2 ) e seu servidor de e-mail está em outro servidor virtual, smtp.example.com ( 192.0.2.10 ).

Para reconfigurar o exim4, você pode executar:

dpkg-reconfigure exim4-config

No servidor de e-mail principal, smtp.example.com, configure-o da seguinte forma (listei apenas os relevantes):

  • Tipo geral de configuração de email: email enviado pelo smarthost; recebido via SMTP ou fetchmail

  • Nome do correio do sistema: smtp.example.com

  • Máquinas para retransmitir mensagens para: 192.0.2.1; 192.0.2.2

  • Endereço IP ou nome do host do smarthost de saída: THE_AMAZON_SES_IP

  • Ocultar o nome do correio local no correio de saída? Sim

  • Nome de domínio visível para usuários locais: example.com

Nos outros servidores, configure o exim como este, usando www.example.com como host de exemplo:

  • Tipo geral de configuração de email: email enviado pelo smarthost; sem correio local

  • Nome do correio do sistema: www.example.com

  • Outros destinos para os quais o e-mail é aceito: LEAVE_EMPTY < - isso fará com que "A opção de ocultar o nome do e-mail local no e-mail de saída tenha sido ativada"

  • Nome de domínio visível para usuários locais: www.example.com

  • Endereço IP ou nome do host do smarthost de saída: 192.0.2.10

Caso você tenha apenas um servidor, ignore o segundo passo. Seu servidor principal deve enviar e-mails escondendo o nome do servidor local e enviá-los como provenientes de example.com.

    
por 07.08.2012 / 02:44
1

Você está tentando esconder o fato de que o email foi originado de uma instância do EC2? A resposta curta é que você não pode. Os cabeçalhos Received: conterão um rastreamento razoavelmente completo do caminho do email pela rede. Felizmente para você, quase ninguém nunca olha para eles.

Se você quiser que os destinatários vejam algo razoável para o cabeçalho From: , basta colocar algo razoável no cabeçalho From: quando enviar o e-mail.

    
por 05.08.2012 / 18:46