

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
<a name="postfix"></a>

Postfix è un'alternativa all'applicazione Sendmail Message Transfer Agent (MTA) ampiamente diffusa. Per informazioni su Postfix, consulta la pagina all'indirizzo [http://www.postfix.org/](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
<a name="send-email-postfix-prereqs"></a>

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 autenticazione SASL. Le procedure a questo scopo variano a seconda del sistema operativo utilizzato. Ad esempio, se utilizzi un sistema RedHat basato, devi 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](creating-identities.md#verify-email-addresses-procedure).
+ 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 sandbox di Amazon SES)](request-production-access.md).

## Configurazione di Postfix
<a name="send-email-postfix"></a>

Completa le procedure seguenti per configurare il tuo server e-mail per l'invio di e-mail tramite Amazon SES usando 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), sostituiscilo *email-smtp.us-west-2.amazonaws.com* nel comando precedente con l'endpoint SMTP della regione appropriata. Per ulteriori informazioni, consulta [Regioni e Amazon SES](regions.md).

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

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

1. Aggiungi la riga seguente a `/etc/postfix/sasl_passwd`:

   ```
   [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
   ```
**Nota**  
Sostituisci *SMTPUSERNAME* e inserisci le tue credenziali *SMTPPASSWORD* di accesso SMTP. Le credenziali di accesso SMTP non corrispondono all'ID chiave di accesso e alla chiave di accesso segreta AWS . Per ulteriori informazioni sulle credenziali, consulta [Richiesta delle credenziali SMTP Amazon SES](smtp-credentials.md).  
Se utilizzi Amazon SES in una AWS regione diversa dagli Stati Uniti occidentali (Oregon), sostituiscilo *email-smtp.us-west-2.amazonaws.com* nell'esempio precedente con l'endpoint SMTP della regione appropriata. Per ulteriori informazioni, consulta [Regioni e Amazon SES](regions.md).

   Salva e chiudi `sasl_passwd`.

1. Nel prompt dei comandi, digita questo comando per creare un file di database hashmap contenente le credenziali SMTP:

   ```
   sudo postmap hash:/etc/postfix/sasl_passwd
   ```

1. (Opzionale) I file `/etc/postfix/sasl_passwd` e `/etc/postfix/sasl_passwd.db` creati nelle fasi precedenti non sono crittografati. Poiché questi file contengono le tue credenziali SMTP, ti consigliamo di modificare la proprietà e le autorizzazioni dei file per limitarvi 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
      ```

   1. 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
      ```

1. Indica a Postfix dove trovare il certificato emesso da una CA, necessario per verificare il certificato del server Amazon SES. 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 | sudo tee /etc/ssl/certs/ca-bundle.crt > /dev/null
     ```

     Dopo aver generato il certificato, digita il comando seguente:

     ```
     sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
     ```

1. 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
   ```

1. Invia un'e-mail di prova digitando il comando seguente nella riga di comando, premendo INVIO dopo ogni riga. Sostituiscilo *sender@example.com* con il tuo indirizzo e-mail From. L'uso dell'indirizzo del mittente deve essere verificato con Amazon SES. 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.                
   .
   ```

1. 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
<a name="send-email-postfix-advanced"></a>

Questo esempio mostra come inviare un'e-mail che usa un [set di configurazione](using-configuration-sets.md) e la codifica MIME in più parti per inviare una versione di testo semplice e una versione HTML del messaggio, insieme a un allegato. Il messaggio include anche un [tag di collegamento](faqs-metrics.md#sending-metric-faqs-clicks-q5), 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.

**Invio di un'e-mail MIME in più parti con Postfix**

1. In un editor di testo crea un nuovo file denominato `mime-email.txt`.

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

1. Nella riga di comando, digita il comando seguente. Sostituisci *sender@example.com* con il tuo indirizzo e-mail e *recipient@example.com* sostituiscilo 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.

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