Integrando a Amazon SES com o Postfix - 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 Postfix

O Postfix é uma alternativa ao amplamente usado Sendmail Message Transfer Agent (). MTA Para obter informações sobre Postfix, acesse http://www.postfix.org. Os procedimentos neste tópico funcionarão com Linux, macOS ou Unix.

nota

☻O Postfix é 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 os procedimentos desta seção, você precisa realizar as seguintes tarefas:

  • Desinstale a aplicação Sendmail, se estiver instalada em seu sistema. O procedimento para concluir esta etapa pode variar dependendo de seu sistema operacional.

    Importante

    As referências a sendmail a seguir referem-se ao comando Postfixsendmail. Não as confunda com a aplicação Sendmail.

  • Instale o Postfix. O procedimento para concluir esta etapa pode variar dependendo de seu sistema operacional.

  • Instale um pacote SASL de autenticação. O procedimento para concluir esta etapa pode variar dependendo de seu sistema operacional. Por exemplo, se você usa um sistema RedHat baseado, você deve instalar o cyrus-sasl-plain pacote. Se usar um sistema Debian ou Ubuntu, deverá instalar o pacote libsasl2-modules.

  • Confirme o endereço de e-mail ou domínio que você usará para enviar e-mails. Para obter mais informações, consulte Criação da identidade de um endereço de e-mail.

  • Se a sua conta ainda estiver no sandbox, você só poderá enviar e-mail para endereços de e-mail verificados. Para obter mais informações, consulte Solicitar acesso à produção (saindo do SES sandbox da Amazon).

Configuração do Postfix

Conclua os procedimentos a seguir para configurar seu servidor de e-mail para enviar e-mails pela Amazon SES usando o Postfix.

Para configurar o Postfix
  1. Na linha de comando, digite o seguinte comando:

    sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \ "smtp_sasl_auth_enable = yes" \ "smtp_sasl_security_options = noanonymous" \ "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \ "smtp_use_tls = yes" \ "smtp_tls_security_level = secure" \ "smtp_tls_note_starttls_offer = yes"
    nota

    Se você usa a Amazon SES em uma AWS região diferente do Oeste dos EUA (Oregon), substitua email-smtp.us-west-2.amazonaws.com no comando anterior com o SMTP ponto final da região apropriada. Para obter mais informações, consulte Regiões e Amazon SES.

  2. Em um editor de texto, abra o arquivo /etc/postfix/master.cf. Procure a seguinte entrada:

    -o smtp_fallback_relay=

    Se você encontrar essa entrada, faça um comentário, colocando um caractere # (hash) no início da linha. Salve e feche o arquivo.

    Caso contrário, se essa entrada não estiver presente, continue na próxima etapa.

  3. Em um editor de texto, abra o arquivo /etc/postfix/sasl_passwd. Se o arquivo ainda não existir, crie-o.

  4. Adicione a seguinte linha a /etc/postfix/sasl_passwd:

    [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
    nota

    Substituir SMTPUSERNAME e SMTPPASSWORD com suas SMTP credenciais de login. Suas credenciais SMTP de login não são as mesmas do ID da chave de acesso e da chave de AWS acesso secreta. Para obter mais informações sobre credenciais, consulte Obtendo SES SMTP credenciais da Amazon.

    Se você usa a Amazon SES em uma AWS região diferente do Oeste dos EUA (Oregon), substitua email-smtp.us-west-2.amazonaws.com no exemplo anterior com o SMTP ponto final da região apropriada. Para obter mais informações, consulte Regiões e Amazon SES.

    Salve e feche sasl_passwd.

  5. Em um prompt de comando, digite o seguinte comando para criar um arquivo de banco de dados hashmap contendo suas SMTP credenciais:

    sudo postmap hash:/etc/postfix/sasl_passwd
  6. (Opcional) Os arquivos /etc/postfix/sasl_passwd e /etc/postfix/sasl_passwd.db que você criou nas etapas anteriores não são criptografados. Como esses arquivos contêm suas SMTP credenciais, recomendamos que você modifique a propriedade e as permissões dos arquivos para restringir o acesso a eles. Para restringir o acesso a esses arquivos:

    1. Em um prompt de comando, digite o comando a seguir para alterar a propriedade dos arquivos:

      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    2. Em um prompt de comando, digite o comando a seguir para alterar as permissões dos arquivos de modo que apenas o usuário raiz possa ler ou gravar neles:

      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  7. Diga ao Postfix onde encontrar o certificado CA (necessário para verificar o certificado do SES servidor Amazon). O comando que você usa nesta etapa varia de acordo com o seu sistema operacional.

    • Se você usa o Amazon Linux, o Red Hat Enterprise Linux ou uma distribuição relacionada, digite o comando a seguir:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Se você usa Ubuntu ou uma distribuição relacionada, digite o comando a seguir:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • Se você usa macOS, pode gerar o certificado a partir do conjunto de chaves do sistema. Para gerar o certificado, digite o comando a seguir na linha de comando:

      sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /etc/ssl/certs/ca-bundle.crt

      Depois que você gerar o certificado, digite o comando a seguir:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  8. Digite o comando a seguir para iniciar o servidor do Postfix (ou para recarregar os parâmetros de configuração, se o servidor já estiver em execução):

    sudo postfix start; sudo postfix reload
  9. Envie um e-mail de teste digitando o seguinte em uma linha de comando, pressionando Enter após cada linha. Substituir sender@example.com com seu endereço de e-mail do remetente. O endereço do remetente deve ser verificado para uso com a AmazonSES. Substituir recipient@example.com com o endereço de destino. Se sua conta ainda estiver na sandbox, o endereço do destinatário também precisa ser verificado. Por fim, a última linha da mensagem precisa conter um ponto final (.) sem nenhum outro conteúdo.

    sendmail -f sender@example.com recipient@example.com From: Sender Name <sender@example.com> Subject: Amazon SES Test This message was sent using Amazon SES. .
  10. Marque a caixa de correio associada ao endereço de destinatário. Se o e-mail não chegar, verifique sua pasta de spam. Se você ainda não conseguir localizar o e-mail, verifique o log de e-mails no sistema que usou para enviar o e-mail (normalmente localizado em /var/log/maillog) para obter mais informações.

Exemplo de uso avançado

Este exemplo mostra como enviar um e-mail que usa um conjunto de configurações e usa a codificação MIME -multipart para enviar um texto sem formatação e uma HTML versão da mensagem, junto com um anexo. Isso também inclui uma tag de link, que pode ser usada para categorizar eventos de clique. O conteúdo do e-mail é especificado em um arquivo externo, de modo que você não precise digitar manualmente os comandos na sessão do Postfix.

Para enviar um MIME e-mail com várias partes usando o Postfix
  1. Em um editor de texto, crie um novo arquivo chamado mime-email.txt.

  2. No arquivo de texto, cole o conteúdo a seguir, substituindo os valores em vermelho pelos valores apropriados para a sua conta:

    X-SES-CONFIGURATION-SET: ConfigSet From:Sender Name <sender@example.com> Subject:Amazon SES Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU" --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ" --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Amazon SES Test This message was sent from Amazon SES using the SMTP interface. For more information, see: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html> <head> </head> <body> <h1>Amazon SES Test</h1> <p>This message was sent from Amazon SES using the SMTP interface.</p> <p>For more information, see <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html"> Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES Developer Guide</em>.</p> </body> </html> --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ-- --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="customers.txt" SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENh bmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixV bml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ== --YWVhZDFlY2QzMGQ2N2U0YTZmODU--

    Salve e feche o arquivo.

  3. Na linha de comando, digite o seguinte comando. Substituir sender@example.com com seu endereço de e-mail e substitua recipient@example.com com o endereço de e-mail do destinatário.

    sendmail -f sender@example.com recipient@example.com < mime-email.txt

    Se o comando for executado com êxito, ele será encerrado sem fornecer nenhuma saída.

  4. Verifique o e-mail na sua caixa de entrada. Se a mensagem não tiver sido entregue, verifique o log de mensagens do seu sistema.