Integrazione di Amazon SES con Postfix - 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 Postfix

Postfix è un'alternativa all'ampiamente utilizzato Sendmail Message Transfer Agent (). MTA Per informazioni su Postfix, consulta la pagina all'indirizzo http://www.postfix.org/. Le procedure descritte in questo argomento possono essere usate con Linux, macOS o Unix.

Nota

Postfix è 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 completare le procedure contenute in questa sezione, devi effettuare queste operazioni:

  • Disinstalla l'applicazione Sendmail, se è installata nel sistema. Le procedure a questo scopo variano a seconda del sistema operativo utilizzato.

    Importante

    I seguenti riferimenti a sendmail sono relativi al comando Postfix sendmail, da non confondere con l'applicazione Sendmail.

  • Installa Postfix. Le procedure a questo scopo variano a seconda del sistema operativo utilizzato.

  • Installa un pacchetto di SASL autenticazione. Le procedure a questo scopo variano a seconda del sistema operativo utilizzato. Ad esempio, se si utilizza un sistema RedHat basato, è necessario installare il cyrus-sasl-plain pacchetto. Se utilizzi un sistema basato su Debian o Ubuntu, devi installare il pacchetto libsasl2-modules.

  • Verifica un indirizzo e-mail o un dominio da usare per l'invio di e-mail. Per ulteriori informazioni, consulta Creazione di un'identità dell'indirizzo e-mail.

  • Se il tuo account si trova ancora in ambiente sandbox (ambiente di sperimentazione), puoi inviare e-mail solo a indirizzi e-mail verificati. Per ulteriori informazioni, consulta Richiedi l'accesso alla produzione (uscita dalla SES sandbox di Amazon).

Configurazione di Postfix

Completa le seguenti procedure per configurare il tuo server di posta per l'invio di e-mail tramite Amazon SES utilizzando Postfix.

Configurazione di Postfix
  1. Nella riga di comando, digita il comando seguente:

    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 utilizzi Amazon SES in una AWS regione diversa dagli Stati Uniti occidentali (Oregon), sostituisci email-smtp.us-west-2.amazonaws.com nel comando precedente con l'SMTPendpoint della regione appropriata. Per ulteriori informazioni, consulta Regioni e Amazon SES.

  2. In un editor di testo, apri il file /etc/postfix/master.cf. Cerca la voce seguente:

    -o smtp_fallback_relay=

    Se trovi questa voce, commentala posizionando un carattere # (hash) all'inizio della riga. Salva e chiudi il file.

    In caso contrario, se questa voce non è presente, continua con il passaggio successivo.

  3. In un editor di testo, apri il file /etc/postfix/sasl_passwd. Se il file non esiste già, procedi a crearlo.

  4. Aggiungi la riga seguente a /etc/postfix/sasl_passwd:

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

    Replace (Sostituisci) SMTPUSERNAME e SMTPPASSWORD con le tue credenziali di SMTP accesso. Le tue credenziali di SMTP accesso non sono le stesse dell'ID della chiave di accesso e della chiave di AWS accesso segreta. Per ulteriori informazioni sulle credenziali, consulta Ottenere le SES SMTP credenziali Amazon.

    Se utilizzi Amazon SES in una AWS regione diversa dagli Stati Uniti occidentali (Oregon), sostituisci email-smtp.us-west-2.amazonaws.com nell'esempio precedente con l'SMTPendpoint della regione appropriata. Per ulteriori informazioni, consulta Regioni e Amazon SES.

    Salva e chiudi sasl_passwd.

  5. Al prompt dei comandi, digitate il seguente comando per creare un file di database hashmap contenente le vostre credenziali: SMTP

    sudo postmap hash:/etc/postfix/sasl_passwd
  6. (Opzionale) I file /etc/postfix/sasl_passwd e /etc/postfix/sasl_passwd.db creati nelle fasi precedenti non sono crittografati. Poiché questi file contengono SMTP le tue credenziali, ti consigliamo di modificare la proprietà e le autorizzazioni dei file per limitarne l'accesso. Per limitare l'accesso ai file:

    1. Nel prompt dei comandi, digita il comando seguente per modificare la proprietà dei file:

      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    2. Nel prompt dei comandi, digita il comando seguente per modificare le autorizzazioni dei file in modo che solo l'utente root sia in grado di leggere o scrivere tali file:

      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  7. Indica a Postfix dove trovare il certificato CA (necessario per verificare il certificato del SES server Amazon). Il comando usato in questa fase varia a seconda del sistema operativo.

    • Se utilizzi Amazon Linux, Red Hat Enterprise Linux, oppure una distribuzione correlata, digita il comando seguente:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Se utilizzi Ubuntu oppure una distribuzione correlata, digita il comando seguente:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • Se utilizzi macOS, puoi generare il certificato dal portachiavi del tuo sistema. Per generare il certificato, digita il comando seguente nella riga di comando:

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

      Dopo aver generato il certificato, digita il comando seguente:

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  8. Digita questo comando per avviare il server Postfix (o per ricaricare le impostazioni di configurazione se il server è già in esecuzione):

    sudo postfix start; sudo postfix reload
  9. Invia un'e-mail di prova digitando il comando seguente nella riga di comando, premendo INVIO dopo ogni riga. Replace (Sostituisci) sender@example.com con il tuo indirizzo email From. L'indirizzo del mittente deve essere verificato per l'utilizzo con AmazonSES. Replace (Sostituisci) recipient@example.com con l'indirizzo di destinazione. Se il tuo account si trova ancora nella sandbox (ambiente di sperimentazione), deve essere verificato anche l'indirizzo del destinatario. Infine, la riga finale del messaggio deve contenere un solo punto (.) senza altri contenuti.

    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. Controlla la mailbox associata all'indirizzo del destinatario. Se l'e-mail non arriva, controlla la cartella spam. Se non riesci comunque a trovare l'e-mail, per ulteriori informazioni controlla il registro della posta del sistema, che si trova in genere in /var/log/maillog.

Esempio di utilizzo avanzato

Questo esempio mostra come inviare un'e-mail che utilizza un set di configurazione e che utilizza la codifica MIME -multipart per inviare sia un testo semplice che una HTML versione del messaggio, insieme a un allegato. Il messaggio include anche un tag di collegamento, che può essere usato per classificare gli eventi clic. Il contenuto dell'e-mail è specificato in un file esterno, in modo da non dover digitare manualmente i comandi nella sessione di Postfix.

Per inviare un'email composta da più parti usando Postfix MIME
  1. In un editor di testo crea un nuovo file denominato mime-email.txt.

  2. Nel file di testo incolla il contenuto seguente, sostituendo i valori in rosso con quelli appropriati per il tuo account:

    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--

    Salva e chiudi il file.

  3. Nella riga di comando, digita il comando seguente. Replace (Sostituisci) sender@example.com con il tuo indirizzo email e sostituiscilo recipient@example.com con l'indirizzo e-mail del destinatario.

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

    Se l'esecuzione del comando riesce, l'operazione viene completata senza fornire output.

  4. Controlla nella cartella della posta in arrivo di aver ricevuto l'e-mail. Se il messaggio non è stato consegnato, controlla il registro della posta del sistema.