Utilizzo di modelli per l'invio di e-mail personalizzate con l'API Amazon SES - 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à.

Utilizzo di modelli per l'invio di e-mail personalizzate con l'API Amazon SES

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 Templaterisorsa creata e salvata in SES utilizzando l'CreateEmailTemplateoperazione 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'SendBulkEmailoperazione. L'Destinationoggetto può contenere più destinatari definiti in ToAddressesCcAddresses, 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.

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.

(Facoltativo) Parte 1: Impostazione delle notifiche relative agli eventi di errore di rendering

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 nella Guida per gli sviluppatori di Amazon Simple Notification Service.

  2. 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 nella Guida per gli sviluppatori di Amazon Simple Notification Service.

  3. Completa le procedure in Configurazione di una destinazione degli eventi Amazon SNS per la pubblicazione di eventi 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

Se intendi utilizzare un modello memorizzato, questa sezione ti mostrerà come utilizzare l'operazione API CreateEmailTemplateSES 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.

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:

      • SubjectPart: 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.

      • HtmlPart— Il corpo HTML dell'e-mail. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • TextPart— 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.

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

  3. Nella riga di comando, digitate il seguente comando per creare un nuovo modello utilizzando l'operazione API CreateEmailTemplatev2:

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

Fase 3: invio dell'e-mail personalizzata

È possibile utilizzare le seguenti due operazioni API SES v2 per inviare e-mail utilizzando modelli archiviati o modelli in linea:

  • L'SendEmailoperazione è utile per inviare un'e-mail personalizzata a un singolo oggetto di destinazione. L'Destinationoggetto API v2 può contenere le BccAddressesproprietà ToAddressesCcAddresses, e. Questi possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.

  • L'SendBulkEmailoperazione è 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

È possibile utilizzare l'SendEmailoperazione per inviare un'e-mail a uno o più destinatari definiti in un singolo oggetto di destinazione. Tutti i destinatari nell'oggetto Destination 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. MyTemplateTemplateName

    { "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 ToAddressesproprietà 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.

    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 ToAddressesproprietà 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:

      • SubjectPart: 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.

      • HtmlPart— Il corpo HTML dell'e-mail. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • TextPart— 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.

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

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

È possibile utilizzare l'SendBulkEmailoperazione 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 Destinationoggetto.

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

    { "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 andTemplateData.

    • TemplateName— Il nome della Template risorsa da applicare all'e-mail.

    • TemplateData— Contiene coppie chiave-valore che verranno utilizzate se l'ReplacementEmailContentoggetto 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 BccAddressesproprietà ToAddressesCcAddresses, 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'DefaultContentoggetto.)

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

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

    • TemplateContent— Un contenitore per i seguenti attributi:

      • SubjectPart: 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.

      • HtmlPart— Il corpo HTML dell'e-mail. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • TextPart— 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'ReplacementEmailContentoggetto 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 BccAddressesproprietà ToAddressesCcAddresses, 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'DefaultContentoggetto.)

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

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

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