Como posso tornar o Amazon SES o método padrão de envio de mensagens do meu servidor?

14

Gostaria de começar a usar o Amazon SES para todos os e-mails do nosso servidor. Temos alguns designers freelancers com hospedagem PHP, alguns aplicativos web Django / Python e também alguns utilitários de sistema que enviam e-mails.

Então eu gostaria de ter a função mail do PHP, o comando mail da linha de comando e todos os nossos aplicativos em python poderem usá-lo, de preferência sem precisar configurá-los em seu próprio caminho.

Eu acho que o que eu preciso é ter algo como Postfix rodando em localhost e usando SES para entrega, mas eu não sei como fazer isso.

Os documentos da Amazon informam que preciso configurar meu agente de transferência de e-mail (MTA) para que ele chame o script ses-send-email.pl. Eu tenho o script, mas não sei como conseguir isso.

Estou no caminho certo? Se sim, como posso configurar o Postfix para usar esse script?

    
por Jake 01.02.2011 / 07:21

3 respostas

8

A Amazon acaba de lançar o acesso SMTP ao SES. Eu preparei um rápido tutorial para esta manhã: link

    
por 14.12.2011 / 21:07
14

Veja alguns itens copiados do guia do desenvolvedor do SES :

Para integrar o ses-send-email.pl com o Postfix:

  1. Abra o arquivo master.cf. Em muitos sistemas, esse arquivo reside no diretório /etc/postfix .
  2. Configure um novo transporte de email adicionando as duas linhas a seguir ao arquivo master.cf e salvando o arquivo.

    aws-email  unix  -       n       n       -       -       pipe
      flags=R user=mailuser argv=/opt/third-party/amazon/ses-send-email.pl -r -k /opt/third-party/amazon/aws-credentials -e https://email.us-east-1.amazonaws.com -f ${sender} ${recipient}
    

Observe o seguinte sobre este exemplo:

  • A linha de flags começa com pelo menos um caractere de espaço em branco.
  • O parâmetro do usuário deve especificar um usuário não raiz (por exemplo, um usuário não administrativo). O usuário mailuser é apenas para fins ilustrativos.
  • O script ses-send-email.pl e o arquivo de credenciais residem no diretório / opt / third-party / amazon.
  • O ponto de extremidade para se comunicar com o Amazon SES é o link

Você deve modificar esses parâmetros conforme apropriado.

  1. Abra o arquivo main.cf no mesmo diretório do master.cf e modifique-o da seguinte forma:

    1. Procure a linha default_transport:

      • Se existir, altere-o para que fique assim:

        default_transport = aws-email
        
      • Se não existir, adicione uma nova linha ao conteúdo anterior.

    2. Salve o arquivo main.cf quando terminar.
  2. Reinicie seu servidor Postfix.

    /etc/init.d/postfix restart
    

Observe que esse comando pode não ser exatamente o mesmo em seu servidor específico. Deste ponto em diante, o seu email de saída é enviado via Amazon SES. Você pode testar isso enviando um email mensagem através de seu servidor Postfix e, em seguida, verificar se ele chega ao seu destino. Se a mensagem não é entregue, verifique o log de mensagens do seu sistema em busca de erros. Em muitos sistemas, este é o /var/log/mail.log

Criei um blog simples coloquei todas as coisas juntas tentei recentemente no Amazon Cloud e SES. Aqui está o link: link

    
por 02.02.2011 / 21:05
1

Como você está hospedando aplicativos Python / Django no seu servidor, você pode achar preferível conectar o Postfix ao equivalente Python dos scripts AWS Perl. Este guia tem os detalhes:

link

Como alternativa, se você quiser usar os scripts Perl, mas encontrar (como eu) que seus módulos CPAN estão terrivelmente desatualizados, uma rota mais fácil pode ser instalar as dependências através do gerenciador de pacotes do seu sistema operacional. Por exemplo, no Ubuntu, você pode fazer isso com:

sudo apt-get install libio-socket-ssl-perl libxml-libxml-perl
    
por 30.10.2011 / 18:12