

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

# Utilizzo di modelli per l'invio di e-mail personalizzate con l'API Amazon SES
<a name="send-personalized-email-api"></a>

In Amazon SES puoi inviare e-mail basate su modelli utilizzando un *modello archiviato o utilizzando un modello* *in* linea.
+ **Modello archiviato**: si riferisce alla [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html)risorsa creata e salvata in SES utilizzando l'`CreateEmailTemplate`operazione nell'API Amazon SES v2. Il modello contiene l'oggetto e il corpo dell'e-mail contenenti variabili (segnaposto) in linea con il contenuto scritto. Il nome del modello archiviato e i dati dinamici delle variabili segnaposto nel modello vengono forniti quando si chiamano le operazioni API o v2. `SendEmail` `SendBulkEmail`

  *I modelli archiviati* possono essere facilmente riutilizzati e consentono di risparmiare tempo e fatica quando si inviano tipi di e-mail simili. Invece di creare ogni e-mail da zero, è sufficiente creare la struttura di base e il design una sola volta, quindi aggiornare semplicemente il contenuto dinamico all'interno del modello.
+ **Modello in linea**: la `Template` risorsa non viene utilizzata, ma l'oggetto e il corpo dell'e-mail contenenti le variabili (segnaposto) in linea con il contenuto scritto insieme ai valori per tali variabili segnaposto vengono forniti quando si chiamano le operazioni API o v2. `SendEmail` `SendBulkEmail`

  *I modelli in linea* semplificano il processo di invio di e-mail di massa eliminando la necessità di gestire le risorse dei modelli nell'account SES e semplificano il processo di integrazione consentendoti di includere il contenuto del modello direttamente nella logica dell'applicazione. Non rientrano nel conteggio del limite di 20.000 modelli per persona. Regione AWS

*I seguenti limiti si applicano quando si utilizzano modelli archiviati:*
+ Puoi creare fino a 20.000 modelli di email ciascuno Regione AWS.
+ Ogni modello può raggiungere le dimensioni massime di 500 KB, inclusi testo e parti HTML.

Il seguente limite si applica quando si utilizzano modelli *in linea*:
+ Ogni file JSON di input può avere dimensioni fino a 1 MB, incluse le parti di testo e HTML.

Quanto segue si applica sia ai modelli *archiviati* che a quelli *in linea*:
+ Non ci sono limiti al numero di variabili sostitutive che possono essere utilizzate.
+ È possibile inviare e-mail a un massimo di 50 oggetti di destinazione per ogni chiamata all'`SendBulkEmail`operazione. L'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)oggetto può contenere più destinatari definiti in **ToAddresses**CcAddresses****, e **BccAddresses**. Il numero di destinazioni che puoi contattare in una singola chiamata all'API v2 può essere limitato dalla velocità di invio massima del tuo account. Per ulteriori informazioni, consulta [Gestione dei limiti di invio di Amazon SES](manage-sending-quotas.md).

Questo capitolo include procedure con esempi per l'utilizzo sia dei *modelli archiviati che dei modelli* *in linea*.

**Nota**  
Queste procedure si basano anche sul presupposto che l' AWS CLI sia già stata installata e configurata. Per ulteriori informazioni sull'installazione e la configurazione di AWS CLI, consultate la Guida per l'[AWS Command Line Interface utente](https://docs.aws.amazon.com/cli/latest/userguide/).

## (Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering
<a name="send-personalized-email-set-up-notifications"></a>

 Se invii un'e-mail che contiene contenuti di personalizzazione non validi, Amazon SES potrebbe inizialmente accettare il messaggio, ma non sarà in grado di consegnarlo. Per questo motivo, se prevedi di inviare e-mail personalizzate, devi configurare SES per inviare notifiche di eventi di Rendering Failure tramite Amazon SNS. Quando ricevi una notifica di eventi di errore di rendering, puoi identificare il messaggio con i contenuti non validi, risolvere i problemi e inviare di nuovo il messaggio.

La procedura in questa sezione è opzionale, ma fortemente consigliata.

**Configurazione delle notifiche di eventi di errore di rendering**

1. Crea un argomento Amazon SNS. Per le istruzioni, consulta [Creazione di un argomento](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) nella *Guida per gli sviluppatori di Amazon Simple Notification Service*.

1. Iscriviti all'argomento Amazon SNS. Ad esempio, se desideri ricevere le notifiche di errore di rendering via e-mail, effettua la sottoscrizione di un endpoint di e-mail (ovvero il tuo indirizzo e-mail) all'argomento.

   Per le istruzioni, consulta [Sottoscrizione a un argomento](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) nella *Guida per gli sviluppatori di Amazon Simple Notification Service*.

1. Completa le procedure in [Configurazione di una destinazione degli eventi Amazon SNS per la pubblicazione di eventi](event-publishing-add-event-destination-sns.md) per impostare i set di configurazione per la pubblicazione degli eventi di errore di rendering nel tuo argomento Amazon SNS.

## (Facoltativo) Parte 2: creazione di un modello di e-mail
<a name="send-personalized-email-create-template"></a>

Se intendi utilizzare un *modello memorizzato*, questa sezione ti mostrerà come utilizzare l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html)SES v2 per creare il modello. Puoi saltare questo passaggio se desideri utilizzare un modello *in* linea.

Questa procedura si basa sul presupposto che l' AWS CLI sia già stata installata e configurata. [Per ulteriori informazioni sull'installazione e la configurazione di AWS CLI, consulta la Guida per l'AWS Command Line Interface utente.](https://docs.aws.amazon.com/cli/latest/userguide/)

**Creazione del modello**

1. In un editor di testo, crea un nuovo file e incolla il codice seguente personalizzandolo in base alle tue esigenze.

   ```
   {
       "TemplateName": "MyTemplate",
       "TemplateContent": {
           "Subject": "Greetings, {{name}}!",
           "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
           "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
       }
   }
   ```

   Questo codice contiene le seguenti proprietà:
   + **TemplateName**— Il nome della `Template` risorsa. Quando invii l'e-mail, fai riferimento a questo nome.
   + **TemplateContent**— Un contenitore per i seguenti attributi:
     + **Oggetto**: riga dell'oggetto dell'e-mail. Questa proprietà può contenere tag di sostituzione. Questi tag utilizzano il formato seguente: `{{tagname}}`. Quando invii l'e-mail, puoi specificare un valore `tagname` per ogni destinazione.
     + **Html**: il corpo HTML del messaggio di posta elettronica. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: `{{name}}` e `{{favoriteanimal}}`.
     + **Testo**: il corpo del testo dell'e-mail. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'e-mail. Questa proprietà può contenere anche tag sostitutivi.

1. Personalizza l'esempio precedente in base alle tue esigenze, quindi salva il file come *mytemplate.json*.

1. Nella riga di comando, digitate il seguente comando per creare un nuovo modello utilizzando l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html)v2:

   ```
   aws sesv2 create-email-template --cli-input-json file://mytemplate.json
   ```

## Fase 3: invio dell'e-mail personalizzata
<a name="send-personalized-email-api-operations"></a>

È possibile utilizzare le seguenti due operazioni API SES v2 per inviare e-mail utilizzando *modelli archiviati o modelli* *in* linea:
+ L'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)operazione è utile per inviare un'e-mail personalizzata a un singolo oggetto di destinazione. L'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)oggetto API v2 può contenere le *BccAddresses*proprietà *ToAddresses*CcAddresses**, e. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.
+ L'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)operazione è utile per inviare e-mail uniche a più oggetti di destinazione in un'unica chiamata all'API v2.

Questa sezione fornisce esempi di come utilizzare per AWS CLI inviare e-mail basate su modelli utilizzando entrambe queste operazioni di invio.

### Invio di e-mail basate su modelli a un singolo oggetto di destinazione
<a name="send-templated-email-single-destination"></a>

È possibile utilizzare l'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)operazione per inviare un'e-mail a uno o più destinatari definiti in un singolo oggetto di destinazione. Tutti i destinatari nell'oggetto [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) riceveranno la stessa e-mail.

**Per inviare un'e-mail basata su un modello a un singolo oggetto di destinazione**

1. A seconda che desideri utilizzare un *modello memorizzato o un modello* *in linea*, seleziona il rispettivo esempio di codice da incollare in un editor di testo, personalizzandolo in base alle tue esigenze.

------
#### [ Stored template code example ]

   Notate che il modello creato nel passaggio precedente viene utilizzato come valore per il parametro. *MyTemplate*`TemplateName`

   ```
   {
       "FromEmailAddress": "Mary Major <mary.major@example.com>",
       "Destination": {
           "ToAddresses": [
               "alejandro.rosalez@example.com", "jimmy.jet@example.com"
           ]
       },
       "Content": {
           "Template": {
               "TemplateName": "MyTemplate",
               "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"
           }
       },
       "ConfigurationSetName": "ConfigSet"
   }
   ```

   Questo codice contiene le seguenti proprietà:
   + **FromEmailAddress**— L'indirizzo e-mail del mittente.
   + **Destinazione**: un oggetto contenente i destinatari di posta elettronica definiti nelle *ToAddresses*proprietà *CcAddresses*, e *BccAddresses*. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno lo stesso messaggio di posta elettronica.
   + **TemplateName**— Il nome della `Template` risorsa da applicare all'e-mail.
   + **TemplateData**— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili definite nelle `TemplateContent` proprietà del modello memorizzato, ad esempio. `{{name}}` I valori rappresentano il contenuto che sostituisce le variabili.
   + **ConfigurationSetName**— Il nome del set di configurazione da utilizzare per l'invio dell'e-mail.
**Nota**  
È consigliabile utilizzare un set di configurazione configurato per pubblicare gli eventi di errore di rendering in Amazon SNS. Per ulteriori informazioni, consulta [(Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering](#send-personalized-email-set-up-notifications).

------
#### [ Inline template code example ]

   Si noti che le `TemplateContent` proprietà (che normalmente sarebbero definite in un *modello memorizzato*) vengono definite *in linea* insieme alla `TemplateData` proprietà che rende questo modello *in linea*.

   ```
   {
       "FromEmailAddress": "Mary Major <mary.major@example.com>",
       "Destination": {
           "ToAddresses": [
               "alejandro.rosalez@example.com", "jimmy.jet@example.com"
           ]
       },
       "Content": {
           "Template": {
               "TemplateContent": {
                   "Subject": "Greetings, {{name}}!",
                   "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
                   "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
               },
               "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"
           }
       },
       "ConfigurationSetName": "ConfigSet"
   }
   ```

   Questo codice contiene le seguenti proprietà:
   + **FromEmailAddress**— L'indirizzo e-mail del mittente.
   + **Destinazione**: un oggetto contenente i destinatari di posta elettronica definiti nelle *ToAddresses*proprietà *CcAddresses*, e *BccAddresses*. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno lo stesso messaggio di posta elettronica.
   + **TemplateContent**— Un contenitore per i seguenti attributi:
     + **Oggetto**: riga dell'oggetto dell'e-mail. Questa proprietà può contenere tag di sostituzione. Questi tag utilizzano il formato seguente: `{{tagname}}`. Quando invii l'e-mail, puoi specificare un valore `tagname` per ogni destinazione.
     + **Html**: il corpo HTML del messaggio di posta elettronica. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: `{{name}}` e `{{favoriteanimal}}`.
     + **Testo**: il corpo del testo dell'e-mail. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'e-mail. Questa proprietà può contenere anche tag sostitutivi.
   + **TemplateData**— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili definite nelle `TemplateContent` proprietà di questo file, ad esempio. `{{name}}` I valori rappresentano il contenuto che sostituisce le variabili.
   + **ConfigurationSetName**— Il nome del set di configurazione da utilizzare per l'invio dell'e-mail.
**Nota**  
È consigliabile utilizzare un set di configurazione configurato per pubblicare gli eventi di errore di rendering in Amazon SNS. Per ulteriori informazioni, consulta [(Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering](#send-personalized-email-set-up-notifications).

------

1. Personalizza l'esempio precedente in base alle tue esigenze, quindi salva il file come *myemail.json*.

1. Nella riga di comando, digita il seguente comando API v2 per inviare l'e-mail:

   ```
   aws sesv2 send-email --cli-input-json file://myemail.json
   ```

### Invio di e-mail basate su modelli a più oggetti di destinazione
<a name="send-templated-email-multiple-destinations"></a>

È possibile utilizzare l'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)operazione per inviare un'e-mail a più oggetti di destinazione in un'unica chiamata all'API SES v2. SES invia un'e-mail univoca al destinatario o ai destinatari di ciascun [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)oggetto.

**Per inviare un'e-mail basata su un modello a più oggetti di destinazione**

1. A seconda che desideri utilizzare un *modello memorizzato o un modello* *in linea*, seleziona il rispettivo esempio di codice da incollare in un editor di testo, personalizzandolo in base alle tue esigenze.

------
#### [ Stored template code example ]

   Notate che il modello creato nel passaggio precedente viene utilizzato come valore per il parametro. *MyTemplate*`TemplateName`

   ```
   {
       "FromEmailAddress": "Mary Major <mary.major@example.com>",
       "DefaultContent": {
           "Template": {
               "TemplateName": "MyTemplate",
               "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }"
           }
       },
       "BulkEmailEntries": [
           {
               "Destination": {
                   "ToAddresses": [
                       "anaya.iyengar@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "liu.jie@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "shirley.rodriguez@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "richard.roe@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{}"
                   }
               }
           }
       ],
       "ConfigurationSetName": "ConfigSet"
   }
   ```

   Questo codice contiene le seguenti proprietà:
   + **FromEmailAddress**— L'indirizzo e-mail del mittente.
   + **DefaultContent**— Un oggetto JSON che contiene gli oggetti `TemplateName` and`TemplateData`. 
   + **TemplateName**— Il nome della `Template` risorsa da applicare all'e-mail.
   + **TemplateData**— Contiene coppie chiave-valore che verranno utilizzate se l'`ReplacementEmailContent`oggetto contiene un oggetto JSON vuoto`{}`, nella proprietà. `ReplacementTemplateData`
   + **BulkEmailEntries**— Un array che contiene uno o più oggetti. `Destination`
   + **Destinazione**: un oggetto contenente i destinatari di posta elettronica definiti nelle *BccAddresses*proprietà *ToAddresses*CcAddresses**, e. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno lo stesso messaggio di posta elettronica.
   + **ReplacementTemplateData**— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili del modello, ad esempio. `{{name}}` I valori rappresentano il contenuto che sostituisce le variabili nell'e-mail. (Se la stringa JSON qui è vuota, indicata da`{}`, verranno utilizzate le coppie chiave-valore definite nella `TemplateData` proprietà all'interno dell'`DefaultContent`oggetto.)
   + **ConfigurationSetName**— Il nome del set di configurazione da utilizzare per l'invio dell'e-mail.
**Nota**  
È consigliabile utilizzare un set di configurazione configurato per pubblicare gli eventi di errore di rendering in Amazon SNS. Per ulteriori informazioni, consulta [(Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering](#send-personalized-email-set-up-notifications).

------
#### [ Inline template code example ]

   Si noti che le `TemplateContent` proprietà (che normalmente sarebbero definite in un *modello memorizzato*) vengono definite *in linea* insieme alla `TemplateData` proprietà che rende questo modello *in linea*.

   ```
   {
       "FromEmailAddress": "Mary Major <mary.major@example.com>",
       "DefaultContent": {
           "Template": {
               "TemplateContent": {
                   "Subject": "Greetings, {{name}}!",
                   "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
                   "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
               },
               "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }"
           }
       },
       "BulkEmailEntries": [
           {
               "Destination": {
                   "ToAddresses": [
                       "anaya.iyengar@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "liu.jie@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "shirley.rodriguez@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }"
                   }
               }
           },
           {
               "Destination": {
                   "ToAddresses": [
                       "richard.roe@example.com"
                   ]
               },
               "ReplacementEmailContent": {
                   "ReplacementTemplate": {
                       "ReplacementTemplateData": "{}"
                   }
               }
           }
       ],
       "ConfigurationSetName": "ConfigSet"
   }
   ```

   Questo codice contiene le seguenti proprietà:
   + **FromEmailAddress**— L'indirizzo e-mail del mittente.
   + **DefaultContent**— Un oggetto JSON che contiene gli oggetti `TemplateContent` and`TemplateData`. 
   + **TemplateContent**— Un contenitore per i seguenti attributi:
     + **Oggetto**: riga dell'oggetto dell'e-mail. Questa proprietà può contenere tag di sostituzione. Questi tag utilizzano il formato seguente: `{{tagname}}`. Quando invii l'e-mail, puoi specificare un valore `tagname` per ogni destinazione.
     + **Html**: il corpo HTML del messaggio di posta elettronica. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: `{{name}}` e `{{favoriteanimal}}`.
     + **Testo**: il corpo del testo dell'e-mail. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'e-mail. Questa proprietà può contenere anche tag sostitutivi.
   + **TemplateData**— Contiene coppie chiave-valore che verranno utilizzate se l'`ReplacementEmailContent`oggetto contiene un oggetto JSON vuoto`{}`, nella proprietà. `ReplacementTemplateData`
   + **BulkEmailEntries**— Un array che contiene uno o più oggetti. `Destination`
   + **Destinazione**: un oggetto contenente i destinatari di posta elettronica definiti nelle *BccAddresses*proprietà *ToAddresses*CcAddresses**, e. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno lo stesso messaggio di posta elettronica.
   + **ReplacementTemplateData**— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili definite nelle `TemplateContent` proprietà di questo file, ad esempio. `{{name}}` I valori rappresentano il contenuto che sostituisce le variabili nell'e-mail. (Se la stringa JSON qui è vuota, indicata da`{}`, verranno utilizzate le coppie chiave-valore definite nella `TemplateData` proprietà all'interno dell'`DefaultContent`oggetto.)
   + **ConfigurationSetName**— Il nome del set di configurazione da utilizzare per l'invio dell'e-mail.
**Nota**  
È consigliabile utilizzare un set di configurazione configurato per pubblicare gli eventi di errore di rendering in Amazon SNS. Per ulteriori informazioni, consulta [(Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering](#send-personalized-email-set-up-notifications).

------

1. Modifica i valori nel codice precedente in base alle tue esigenze, quindi salva il file con il nome *mybulkemail.json*.

1. Nella riga di comando, digita il seguente comando API v2 per inviare l'e-mail in blocco:

   ```
   aws sesv2 send-bulk-email --cli-input-json file://mybulkemail.json
   ```

# Personalizzazione avanzata dell'email
<a name="send-personalized-email-advanced"></a>

 Se utilizzi un *modello archiviato*, ovvero hai creato una [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html)risorsa in Amazon SES utilizzando l'`CreateEmailTemplate`operazione con l'API SES v2, puoi sfruttare il sistema Handlebars per creare modelli che includono funzionalità avanzate, come attributi annidati, iterazione di array, istruzioni condizionali di base e creazione di parziali in linea. In questa sezione vengono forniti alcuni esempi di queste caratteristiche.

Handlebars include altre caratteristiche oltre quelle documentate in questa sezione. Per ulteriori informazioni, consulta la pagina relativa agli [Helper integrati](https://handlebarsjs.com/guide/builtin-helpers.html) in [handlebarsjs.com](http://handlebarsjs.com).

**Nota**  
SES non fa l'escape del contenuto HTML durante il rendering del modello HTML per un messaggio. Ciò significa che se includi i dati inseriti dall'utente, ad esempio da un modulo di contatto, devi farne l'escape sul lato client.

**Topics**
+ [

## Analisi degli attributi nidificati
](#send-personalized-email-advanced-nested)
+ [

## Scorrimento degli elenchi
](#send-personalized-email-advanced-iterating)
+ [

## Utilizzo di istruzioni condizionali di base
](#send-personalized-email-advanced-conditionals)
+ [

## Creazione di funzioni parziali in linea
](#send-personalized-email-advanced-inline-partials)

## Analisi degli attributi nidificati
<a name="send-personalized-email-advanced-nested"></a>

Handlebars include il supporto per percorsi nidificati, semplificando la gestione dei dati complessi dei clienti e facendo quindi riferimento a quei dati nei tuoi modelli e-mail.

Per esempio, puoi organizzare i dati dei destinatari in diverse categorie generali. In ciascuna di quelle categorie, puoi includere informazioni dettagliate. L'esempio di codice che segue mostra un esempio di questa struttura per un singolo destinatario:

```
{
  "meta":{
    "userId":"51806220607"
  },
  "contact":{
    "firstName":"Anaya",
    "lastName":"Iyengar",
    "city":"Bengaluru",
    "country":"India",
    "postalCode":"560052"
  },
  "subscription":[
    {
      "interest":"Sports"
    },
    {
      "interest":"Travel"
    },
    {
      "interest":"Cooking"
    }
  ]
}
```

Nei tuoi modelli di e-mail, puoi riferirti agli attributi nidificati fornendo il nome dell'attributo padre, seguito da un punto (.), seguito dal nome dell'attributo per il quale si desidera includere il valore. Ad esempio, se utilizzi la struttura di dati illustrata nell'esempio precedente e desideri includere il nome di ciascun destinatario nel modello e-mail, includi il seguente testo nel tuo modello e-mail: `Hello {{contact.firstName}}!`

Handlebars è in grado di analizzare percorsi nidificati in diversi livelli, il che significa che disponi di una certa flessibilità nella modalità di strutturazione dei tuoi dati di modello.

## Scorrimento degli elenchi
<a name="send-personalized-email-advanced-iterating"></a>

La funzione helper `each` scorre gli elementi in una matrice. Il codice seguente è un esempio di un modello e-mail che utilizza la funzione helper `each` per creare un elenco dettagliato degli interessi di ogni destinatario.

```
{
  "Template": {
    "TemplateName": "Preferences",
    "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}",
    "HtmlPart": "<h1>Your Preferences</h1>
                 <p>You have indicated that you are interested in receiving 
                   information about the following subjects:</p>
                 <ul>
                   {{#each subscription}}
                     <li>{{interest}}</li>
                   {{/each}}
                 </ul>
                 <p>You can change these settings at any time by visiting 
                    the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                    Preference Center</a>.</p>",
    "TextPart": "Your Preferences\n\nYou have indicated that you are interested in 
                 receiving information about the following subjects:\n
                 {{#each subscription}}
                   - {{interest}}\n
                 {{/each}}
                 \nYou can change these settings at any time by 
                 visiting the Preference Center at 
                 https://www.example.com/prefererences/i.aspx?id={{meta.userId}}"
  }
}
```

**Importante**  
Nel precedente esempio di codice, i valori degli attributi `HtmlPart` e `TextPart` includono interruzioni di riga per rendere più semplice la lettura dell'esempio. Il file JSON per il tuo modello non è in grado di contenere interruzioni di riga all'interno di questi valori. Se hai copiato e incollato questo esempio nel tuo file JSON, prima di procedere rimuovi le interruzioni di riga e gli spazi eccedenti dalle sezioni `HtmlPart` e `TextPart`.

Dopo che hai creato il modello, puoi utilizzare l'operazione `SendEmail` o `SendBulkEmail` per inviare e-mail ai destinatari utilizzando questo modello. Se ogni destinatario dispone di almeno un valore nell'oggetto `Interests`, questi ricevono un'e-mail che include un elenco dettagliato dei loro interessi. L'esempio seguente mostra un file JSON che può essere utilizzato per inviare e-mail a più destinatari utilizzando il modello precedente:

```
{
  "Source":"Sender Name <sender@example.com>",
  "Template":"Preferences",
  "Destinations":[
    {
      "Destination":{
        "ToAddresses":[
          "anaya.iyengar@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Travel\"},{\"interest\":\"Cooking\"}]}"
      },
    {
      "Destination":{ 
        "ToAddresses":[
          "shirley.rodriguez@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"},\"subscription\":[{\"interest\":\"Technology\"},{\"interest\":\"Politics\"}]}"
    }
  ],
  "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"
}
```

Quando invii un'e-mail ai destinatari elencati nell'esempio precedente utilizzando l'operazione `SendBulkEmail`, questi ricevono un messaggio simile all'esempio illustrato nella seguente immagine:

![\[Preferences notification listing Sports, Travel, and Cooking as selected interests.\]](http://docs.aws.amazon.com/it_it/ses/latest/dg/images/send-personalized-email-advanced-condition-interest.png)


## Utilizzo di istruzioni condizionali di base
<a name="send-personalized-email-advanced-conditionals"></a>

Questa sezione si basa sull'esempio descritto nella sezione precedente. L'esempio nella sezione precedente utilizza l'helper `each` per scorrere un elenco di interessi. Tuttavia, i destinatari per i quali non sono specificati interessi ricevono un'e-mail contenente un elenco vuoto. Utilizzando l'helper `{{if}}`, puoi formattare l'e-mail in modo diverso se un determinato attributo è presente nel modello dati. Il codice seguente utilizza l'helper `{{if}}` per visualizzare l'elenco puntato dalla sezione precedente se la matrice `Subscription` contiene qualsiasi valore. Se la matrice è vuota, viene visualizzato un altro blocco di testo.

```
{
  "Template": {
    "TemplateName": "Preferences2",
    "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}",
    "HtmlPart": "<h1>Your Preferences</h1>
                 <p>Dear {{contact.firstName}},</p>
                 {{#if subscription}}
                   <p>You have indicated that you are interested in receiving 
                     information about the following subjects:</p>
                     <ul>
                     {{#each subscription}}
                       <li>{{interest}}</li>
                     {{/each}}
                     </ul>
                     <p>You can change these settings at any time by visiting 
                       the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                       Preference Center</a>.</p>
                 {{else}}
                   <p>Please update your subscription preferences by visiting 
                     the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                     Preference Center</a>.
                 {{/if}}",
    "TextPart": "Your Preferences\n\nDear {{contact.firstName}},\n\n
                 {{#if subscription}}
                   You have indicated that you are interested in receiving 
                   information about the following subjects:\n
                   {{#each subscription}}
                     - {{interest}}\n
                   {{/each}}
                   \nYou can change these settings at any time by visiting the 
                   Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}.
                 {{else}}
                   Please update your subscription preferences by visiting the 
                   Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}.
                 {{/if}}"
  }
}
```

**Importante**  
Nel precedente esempio di codice, i valori degli attributi `HtmlPart` e `TextPart` includono interruzioni di riga per rendere più semplice la lettura dell'esempio. Il file JSON per il tuo modello non è in grado di contenere interruzioni di riga all'interno di questi valori. Se hai copiato e incollato questo esempio nel tuo file JSON, prima di procedere rimuovi le interruzioni di riga e gli spazi eccedenti dalle sezioni `HtmlPart` e `TextPart`.

L'esempio seguente mostra un file JSON che può essere utilizzato per inviare e-mail a più destinatari utilizzando il modello precedente:

```
{
  "Source":"Sender Name <sender@example.com>",
  "Template":"Preferences2",
  "Destinations":[
    {
      "Destination":{
        "ToAddresses":[
          "anaya.iyengar@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Cooking\"}]}"
      },
    {
      "Destination":{ 
        "ToAddresses":[
          "shirley.rodriguez@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"}}"
    }
  ],
  "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"
}
```

In questo esempio il destinatario, il cui modello di dati ha incluso un elenco di interessi, riceve la stessa e-mail come l'esempio illustrato nella sezione precedente. Il destinatario con un modello di dati che non include alcun interesse, riceve comunque un'e-mail che somiglia all'esempio illustrato nella seguente immagine:

![\[Email message with header "Your Preferences" and text about updating subscription preferences.\]](http://docs.aws.amazon.com/it_it/ses/latest/dg/images/send-personalized-email-advanced-condition-nointerest.png)


## Creazione di funzioni parziali in linea
<a name="send-personalized-email-advanced-inline-partials"></a>

Puoi utilizzare funzioni parziali in linea per semplificare modelli che includono stringhe ripetute. Ad esempio, potresti creare una funzione in linea che include il nome del destinatario e, se è disponibile, il cognome aggiungendo il codice seguente all'inizio del tuo modello:

```
{{#* inline \"fullName\"}}{{firstName}}{{#if lastName}} {{lastName}}{{/if}}{{/inline}}\n
```

**Nota**  
Il carattere per la nuova riga (`\n`) è necessario per separare i blocchi `{{inline}}` dal contenuto nel tuo modello. Non viene eseguito il rendering della nuova riga nell'output finale.

Una volta creata la funzione parziale `fullName`, puoi includerla in qualsiasi punto del modello anteponendo al nome della parziale il segno "maggiore di" (>) seguito da uno spazio, come nell'esempio seguente: `{{> fullName}}`. Le funzioni parziali in linea non vengono trasferite tra le parti dell'e-mail. Ad esempio, se desideri utilizzare la stessa parziale in linea sia in HTML sia nella versione di testo dell'e-mail, è necessario definirla in entrambe le sezioni `HtmlPart` e `TextPart`.

Puoi utilizzare anche le funzioni parziali durante lo scorrimento delle matrici. Puoi utilizzare il codice seguente per creare un modello che usi la funzione parziale in linea `fullName`. In questo esempio, la parziale in linea si applica sia al nome del destinatario che a una vasta gamma di altri nomi:

```
{
  "Template": {
    "TemplateName": "Preferences3",
    "SubjectPart": "{{firstName}}'s Subscription Preferences",
    "HtmlPart": "{{#* inline \"fullName\"}}
                   {{firstName}}{{#if lastName}} {{lastName}}{{/if}}
                 {{/inline~}}\n
                 <h1>Hello {{> fullName}}!</h1>
                 <p>You have listed the following people as your friends:</p>
                 <ul>
                 {{#each friends}}
                   <li>{{> fullName}}</li>
                 {{/each}}</ul>",
    "TextPart": "{{#* inline \"fullName\"}}
                   {{firstName}}{{#if lastName}} {{lastName}}{{/if}}
                 {{/inline~}}\n
                 Hello {{> fullName}}! You have listed the following people 
                 as your friends:\n
                 {{#each friends}}
                   - {{> fullName}}\n
                 {{/each}}"
  }
}
```

**Importante**  
Nel precedente esempio di codice, i valori degli attributi `HtmlPart` e `TextPart` includono interruzioni di riga per rendere più semplice la lettura dell'esempio. Il file JSON per il tuo modello non è in grado di contenere interruzioni di riga all'interno di questi valori. Se hai copiato e incollato questo esempio nel tuo file JSON, prima di procedere rimuovi le interruzioni di riga e gli spazi eccedenti da queste sezioni.

# Gestione dei modelli e-mail
<a name="send-personalized-email-manage-templates"></a>

Oltre a [creare modelli di e-mail](send-personalized-email-api.md), puoi anche utilizzare l'API Amazon SES v2 per aggiornare o eliminare modelli esistenti, elencare tutti i modelli esistenti o visualizzare il contenuto di un modello. 

Questa sezione contiene le procedure per l'utilizzo AWS CLI di eseguire attività relative ai modelli SES.

**Nota**  
Queste procedure si basano anche sul presupposto che l' AWS CLI sia già stata installata e configurata. Per ulteriori informazioni sull'installazione e la configurazione di AWS CLI, consultate la [Guida per l'AWS Command Line Interface utente](https://docs.aws.amazon.com/cli/latest/userguide/).

## Visualizzazione di un elenco di modelli e-mail
<a name="send-personalized-email-manage-templates-list"></a>

È possibile utilizzare l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListEmailTemplate.html)SES v2 per visualizzare un elenco di tutti i modelli di e-mail esistenti.

**Visualizzazione di un elenco di modelli e-mail**
+ Nella riga di comando, inserisci il comando seguente:

  ```
  aws sesv2 list-email-templates
  ```

  Se nel tuo account SES nella regione corrente sono presenti modelli di e-mail esistenti, questo comando restituisce una risposta simile al seguente esempio:

  ```
  {
      "TemplatesMetadata": [
          {
              "Name": "SpecialOffers",
              "CreatedTimestamp": "2020-08-05T16:04:12.640Z"
          },
          {
              "Name": "NewsAndUpdates",
              "CreatedTimestamp": "2019-10-03T20:03:34.574Z"
          }
      ]
  }
  ```

  Se non è stato creato alcun modello, il comando restituisce un `TemplatesMetadata` senza membri.

## Visualizzazione del contenuto di un modello specifico di e-mail
<a name="send-personalized-email-manage-templates-get"></a>

È possibile utilizzare l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html)SES v2 per visualizzare il contenuto di un modello di e-mail specifico.

**Visualizzazione del contenuto di un modello di e-mail**
+ Nella riga di comando, inserisci il comando seguente:

  ```
  aws sesv2 get-email-template --template-name MyTemplate
  ```

  Nel comando precedente, sostituiscilo *MyTemplate* con il nome del modello che desideri visualizzare.

  Se il nome del modello che avete fornito corrisponde a un modello esistente nel vostro account SES, questo comando restituisce una risposta simile al seguente esempio:

  ```
  {
      "Template": {
          "TemplateName": "TestMessage",
          "SubjectPart": "Amazon SES Test Message",
          "TextPart": "Hello! This is the text part of the message.",
          "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>"
      }
  }
  ```

  Se il nome del modello che hai fornito non corrisponde a un modello esistente nel tuo account SES, il comando restituisce un `NotFoundException` errore.

## Eliminazione di un modello di e-mail
<a name="send-personalized-email-manage-templates-delete"></a>

È possibile utilizzare l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DeleteEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DeleteEmailTemplate.html)SES v2 per eliminare un modello di e-mail specifico.

**Eliminazione di un modello di e-mail**
+ Nella riga di comando, inserisci il comando seguente:

  ```
  aws sesv2 delete-email-template --template-name MyTemplate
  ```

  Nel comando precedente, sostituiscilo *MyTemplate* con il nome del modello che desideri eliminare.

  Il comando non produce output. È possibile verificare che il modello sia stato eliminato utilizzando l'[GetTemplate](#send-personalized-email-manage-templates-get)operazione.

## Aggiornamento di un modello di e-mail
<a name="send-personalized-email-manage-templates-update"></a>

È possibile utilizzare l'operazione API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_UpdateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_UpdateEmailTemplate.html)SES v2 per aggiornare un modello di e-mail esistente. Ad esempio, questa operazione è utile se desideri modificare l'oggetto del modello di posta elettronica o devi modificare il corpo del messaggio stesso.

**Aggiornamento di un modello di e-mail**

1. Utilizza il comando `GetEmailTemplate` per recuperare il modello esistente immettendo il seguente comando sulla riga di comando:

   ```
   aws sesv2 get-email-template --template-name MyTemplate
   ```

   Nel comando precedente, sostituiscilo *MyTemplate* con il nome del modello che desideri aggiornare.

   Se il nome del modello che avete fornito corrisponde a un modello esistente nel vostro account SES, questo comando restituisce una risposta simile al seguente esempio:

   ```
   {
       "Template": {
           "TemplateName": "TestMessage",
           "SubjectPart": "Amazon SES Test Message",
           "TextPart": "Hello! This is the text part of the message.",
           "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>"
       }
   }
   ```

1. In un editor di testo, crea un nuovo file. Incolla l'output del comando precedente nel file.

1. Modifica il modello in base alle esigenze. Tutte le righe omesse vengono rimosse dal modello. Ad esempio, se desideri modificare solo la parte `SubjectPart` del modello, è comunque necessario includere le proprietà `TextPart` e `HtmlPart`.

   Al termine, salva il file come `update_template.json`.

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

   ```
   aws sesv2 update-email-template --cli-input-json file://path/to/update_template.json
   ```

   Nel comando precedente, *path/to/update\$1template.json* sostituiscilo con il percorso del `update_template.json` file creato nel passaggio precedente.

   Se il modello viene aggiornato correttamente, questo comando non fornisce alcun output. È possibile verificare che il modello sia stato aggiornato utilizzando l'[https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html)operazione.

   Se il modello specificato non esiste, questo comando restituisce un errore `TemplateDoesNotExist`. Se il modello non contiene la proprietà `TextPart` o `HtmlPart` (o entrambe), questo comando restituisce un errore `InvalidParameterValue`. 