Integrando a Amazon SES com o Sendmail - Amazon Simple Email Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integrando a Amazon SES com o Sendmail

O Sendmail foi lançado no início dos anos 1980 e vem ganhando continuamente melhorias. É um agente de transferência de mensagens flexível e configurável (MTA) com uma grande comunidade de usuários. O Sendmail foi adquirido pela Proofpoint em 2013, mas a Proofpoint continua oferecendo uma versão de código aberto do Sendmail. Você pode fazer download da versão de código aberto do Sendmail no site da Proofpoint ou por meio dos gerenciadores de pacote da maioria das distribuições do Linux.

O procedimento nesta seção mostra como configurar o Sendmail para enviar e-mails pela Amazon. SES Esse procedimento foi testado em um servidor executando o Ubuntu 18.04.2LTS.

nota

O Sendmail é uma aplicação de terceiros e não é desenvolvido nem suportado pela Amazon Web Services. Os procedimentos nesta seção são fornecidos apenas para fins informativos e estão sujeitos a alterações sem aviso prévio.

Pré-requisitos

Antes de concluir o procedimento desta seção, você deverá concluir as seguintes etapas:

  • Instalar o pacote do Sendmail no servidor.

    nota

    Dependendo da distribuição do sistema operacional que você usa, talvez também seja necessário instalar os seguintes pacotes: sendmail-cf, m4 e cyrus-sasl-plain.

  • Verificar uma identidade para usar como seu endereço de remetente. Para obter mais informações, consulte Criação da identidade de um endereço de e-mail.

    Se sua conta estiver na SES sandbox da Amazon, você também deverá verificar os endereços para os quais você envia e-mails. Para obter mais informações, consulte Solicitar acesso à produção (saindo do SES sandbox da Amazon).

Se você estiver usando SES a Amazon para enviar e-mails de uma EC2 instância da Amazon, você também deve concluir as seguintes etapas:

  • Talvez seja necessário atribuir um endereço IP elástico à sua EC2 instância da Amazon para que os provedores de e-mail de recebimento aceitem seu e-mail. Para obter mais informações, consulte os endereços IP EC2 elásticos da Amazon no Guia EC2 do usuário da Amazon.

  • O Amazon Elastic Compute Cloud (AmazonEC2) restringe o tráfego de e-mail pela porta 25 por padrão. Para evitar tempos limite ao enviar e-mails pelo SMTP endpoint da AmazonEC2, você pode solicitar que essas restrições sejam removidas. Para obter mais informações, consulte Como faço para remover a restrição na porta 25 da minha EC2 instância ou AWS Lambda função da Amazon? no Centro de AWS Conhecimento.

    Como alternativa, você pode modificar o procedimento nesta seção para usar a porta 587 em vez da porta 25.

Configurar o Sendmail

Conclua as etapas desta seção para configurar o Sendmail para enviar e-mails usando a Amazon. SES

Importante

O procedimento nesta seção pressupõe que você queira usar a Amazon SES no Oeste dos EUA (Oregon). Região da AWS Se você quiser usar uma região diferente, substitua todas as instâncias de email-smtp.us-west-2.amazonaws.com nesse procedimento pelo SMTP endpoint da região desejada. Para obter uma lista de SMTP endpoints URLs em Regiões da AWS que a Amazon SES está disponível, consulte Amazon Simple Email Service (AmazonSES) no Referência geral da AWS.

Para configurar o Sendmail
  1. Em um editor de arquivo, abra o arquivo /etc/mail/authinfo. Se o arquivo não existir, crie-o.

    Adicione a seguinte linha a/etc/mail/authinfo:

    AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:smtpUsername" "P:smtpPassword" "M:PLAIN"

    No exemplo anterior, faça as seguintes alterações:

    • Substituir email-smtp.us-west-2.amazonaws.com com o SES SMTP endpoint da Amazon que você deseja usar.

    • Substituir smtpUsername com seu nome de SES SMTP usuário da Amazon.

    • Substituir smtpPassword com sua SES SMTP senha da Amazon.

    nota

    Suas credenciais SMTP de login são diferentes da ID da chave de AWS acesso e da chave de acesso secreta. Para obter mais informações sobre como obter suas credenciais SMTP de login, consulte. Obtendo SES SMTP credenciais da Amazon

    Quando terminar, salve authinfo.

  2. Na linha de comando, digite o comando a seguir para gerar o arquivo /etc/mail/authinfo.db:

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  3. Na linha de comando, digite o comando a seguir para adicionar suporte à retransmissão para o SES SMTP endpoint da Amazon.

    sudo sh -c 'echo "Connect:email-smtp.us-west-2.amazonaws.com RELAY" >> /etc/mail/access'

    No comando anterior, substitua email-smtp.us-west-2.amazonaws.com com o endereço do SES SMTP endpoint da Amazon que você deseja usar.

  4. Na linha de comando, digite o seguinte comando para regenerar etc/mail/access/.db:

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  5. Na linha de comando, digite o comando a seguir para criar backups dos arquivos sendmail.cf e sendmail.mc:

    sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'
  6. Adicione as linhas a seguir ao arquivo/etc/mail/sendmail.mc antes de qualquer MAILER() definição.

    define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnl define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl MASQUERADE_AS(`example.com')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl

    No texto anterior, faça o seguinte:

    • Substituir email-smtp.us-west-2.amazonaws.com com o SES SMTP endpoint da Amazon que você deseja usar.

    • Substituir example.com com o domínio que você deseja usar para enviar e-mails.

    Ao concluir, salve o arquivo.

    nota

    A Amazon EC2 restringe as comunicações pela porta 25 por padrão. Se você estiver usando o Sendmail em uma EC2 instância da Amazon, deverá preencher a Solicitação para remover limitações de envio de e-mail.

  7. Na linha de comando, digite o comando a seguir para tornar sendmail.cf gravável:

    sudo chmod 666 /etc/mail/sendmail.cf
  8. Na linha de comando, digite o comando a seguir para gerar novamente sendmail.cf:

    sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
    nota

    Se você encontrar erros como "Comando não encontrado" e "Este arquivo ou diretório não existe", verifique se os pacotes m4 e sendmail-cf estão instalados em seu sistema.

  9. Na linha de comando, digite o comando a seguir para redefinir as permissões de sendmail.cf como somente leitura:

    sudo chmod 644 /etc/mail/sendmail.cf
  10. Na linha de comando, digite o comando a seguir para reiniciar o Sendmail:

    sudo /etc/init.d/sendmail restart

    Dependendo da versão do Linux ou do Sendmail, se o indicado acima não funcionar, tente fazer o seguinte:

    sudo su service sendmail restart
  11. Conclua as etapas a seguir para enviar um e-mail de teste:

    1. Na linha de comando, insira o seguinte comando:

      /usr/sbin/sendmail -vf sender@example.com recipient@example.com

      Substituir sender@example.com com seu endereço de e-mail do remetente. Substituir recipient@example.com com o endereço Para. Quando terminar, pressione Enter.

    2. Insira o conteúdo de mensagem a seguir. Pressione Enter ao final de cada linha.

      From: sender@example.com To: recipient@example.com Subject: Amazon SES test email This is a test message sent from Amazon SES using Sendmail.

      Quando terminar de inserir o conteúdo do e-mail, pressione Ctrl+D para enviá-lo.

  12. Verifique o cliente de e-mail do destinatário para o e-mail. Se você não encontrar o e-mail, verifique a pasta de spam. Se você ainda não conseguir localizar o e-mail, verifique o log do Sendmail no servidor de e-mail. O log geralmente está localizado em/var/log/mail.log ou/var/log/maillog.