Integrazione di Amazon SES con Sendmail - Amazon Simple Email Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integrazione di Amazon SES con Sendmail

Sendmail è stato rilasciato nei primi anni '80 e da allora viene costantemente migliorato. È un agente di trasferimento messaggi flessibile e configurabile (MTA) con un'ampia comunità di utenti. Sendmail è stato acquisito da Proofpoint nel 2013, ma Proofpoint continua a offrire una versione open source di Sendmail. È possibile scaricare la versione open source di Sendmail dal sito Web di Proofpoint oppure tramite le funzionalità di gestione dei pacchetti della maggior parte delle distribuzioni Linux.

La procedura in questa sezione mostra come configurare Sendmail per l'invio di e-mail tramite Amazon. SES Questa procedura è stata testata su un server che esegue Ubuntu 18.04.2. LTS

Nota

Sendmail è un'applicazione di terze parti e non è sviluppata o supportata da Amazon Web Services. Le procedure descritte in questa sezione sono fornite solo a scopo informativo e sono soggette a modifiche senza preavviso.

Prerequisiti

Prima di eseguire la procedura descritta in questa sezione, è necessario completare i seguenti passaggi:

Se utilizzi Amazon SES per inviare e-mail da un'EC2istanza Amazon, devi inoltre completare i seguenti passaggi:

  • Potrebbe essere necessario assegnare un indirizzo IP elastico alla tua EC2 istanza Amazon affinché i provider di posta elettronica riceventi accettino la tua e-mail. Per ulteriori informazioni, consulta gli indirizzi IP di Amazon EC2 Elastic nella Amazon EC2 User Guide.

  • Amazon Elastic Compute Cloud (AmazonEC2) limita il traffico e-mail sulla porta 25 per impostazione predefinita. Per evitare timeout durante l'invio di e-mail tramite l'SMTPendpoint da AmazonEC2, puoi richiedere la rimozione di queste restrizioni. Per ulteriori informazioni, consulta Come faccio a rimuovere la restrizione sulla porta 25 dalla mia EC2 istanza o AWS Lambda funzione Amazon? nel AWS Knowledge Center.

    In alternativa, è possibile modificare la procedura descritta in questa sezione per utilizzare la porta 587 anziché la porta 25.

Configurazione di Sendmail

Completa i passaggi in questa sezione per configurare Sendmail per l'invio di e-mail tramite Amazon. SES

Importante

La procedura in questa sezione presuppone che tu voglia utilizzare Amazon SES negli Stati Uniti occidentali (Oregon). Regione AWS Se desideri utilizzare una regione diversa, sostituisci tutte le istanze di email-smtp.us-west-2.amazonaws.com in questa procedura con l'SMTPendpoint della regione desiderata. Per un elenco di SMTP endpoint URLs per i Regioni AWS quali Amazon SES è disponibile, consulta Amazon Simple Email Service (AmazonSES) nel Riferimenti generali di AWS.

Configurazione di Sendmail
  1. In un editor di file, apri il file /etc/mail/authinfo. Se il file non esiste, procedi alla sua creazione.

    Aggiungi la riga seguente a/: etc/mail/authinfo

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

    In questo esempio, apporta le modifiche seguenti:

    • Replace (Sostituisci) email-smtp.us-west-2.amazonaws.com con l'SESSMTPendpoint Amazon che desideri utilizzare.

    • Replace (Sostituisci) smtpUsername con il tuo nome SES SMTP utente Amazon.

    • Replace (Sostituisci) smtpPassword con la tua SES SMTP password Amazon.

    Nota

    Le tue credenziali di SMTP accesso sono diverse dall'ID della chiave di AWS accesso e dalla chiave di accesso segreta. Per ulteriori informazioni su come ottenere le credenziali di SMTP accesso, consulta. Ottenere le SES SMTP credenziali Amazon

    Al termine, salva authinfo.

  2. Nella riga di comando, immetti il comando seguente per generare il file /etc/mail/authinfo.db:

    sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'
  3. Nella riga di comando, digita il seguente comando per aggiungere il supporto per l'inoltro all'SESSMTPendpoint Amazon.

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

    Nel comando precedente, sostituisci email-smtp.us-west-2.amazonaws.com con l'indirizzo dell'SESSMTPendpoint Amazon che desideri utilizzare.

  4. Nella riga di comando, digita il seguente comando per rigenerare/etc/mail/access.db:

    sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'
  5. Alla riga di comando, digita il comando seguente per creare copie di backup dei file 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. Aggiungere le righe seguenti al file/etc/mail/sendmail.mc prima di qualsiasi definizione. MAILER()

    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

    Nel testo precedente, effettua le seguenti operazioni:

    • Replace (Sostituisci) email-smtp.us-west-2.amazonaws.com con l'SESSMTPendpoint Amazon che desideri utilizzare.

    • Replace (Sostituisci) example.com con il dominio che desideri utilizzare per inviare e-mail.

    Al termine, salva il file.

    Nota

    Amazon EC2 limita le comunicazioni sulla porta 25 per impostazione predefinita. Se utilizzi Sendmail in un'EC2istanza Amazon, devi completare la Richiesta di rimozione delle limitazioni all'invio di e-mail.

  7. Alla riga di comando, digita il comando seguente per rendere sendmail.cf scrivibile:

    sudo chmod 666 /etc/mail/sendmail.cf
  8. Alla riga di comando, digita il comando seguente per generare nuovamente sendmail.cf:

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

    Se si verificano errori, ad esempio "Command not found" (Comando non trovato) e "No such file or directory" (Nessun file o directory), accertati che i pacchetti m4 e sendmail-cf siano installati nel sistema.

  9. Alla riga di comando, digita il comando seguente per ripristinare le autorizzazioni di sendmail.cf alla modalità di sola lettura:

    sudo chmod 644 /etc/mail/sendmail.cf
  10. Alla riga di comando, digita il comando seguente per riavviare Sendmail:

    sudo /etc/init.d/sendmail restart

    A seconda della versione di Linux o Sendmail, se l'operazione precedente non funziona, provare quanto segue:

    sudo su service sendmail restart
  11. Completa la procedura seguente per inviare un messaggio e-mail di prova:

    1. Nella riga di comando, immetti il comando seguente:

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

      Replace (Sostituisci) sender@example.com con il tuo indirizzo email From. Replace (Sostituisci) recipient@example.com con l'indirizzo To. Al termine, premi Enter.

    2. Inserisci il seguente contenuto del messaggio. Premi Enter al termine di ogni riga.

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

      Una volta inserito il contenuto dell'e-mail, premi Ctrl+D per inviare.

  12. Controlla la presenza dell'e-mail nel client e-mail del destinatario. Se non riesci a trovare l'e-mail, controlla la cartella della posta indesiderata. Se ancora non è possibile individuare l'e-mail, controlla il registro di Sendmail sul server di posta. Il registro si trova spesso in/var/log/mail.log o/var/log/maillog.