View a markdown version of this page

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 memorizzato: si riferisce alla Template risorsa creata e salvata in SES utilizzando l'CreateEmailTemplateoperazione nell'API Amazon SES v2. Il modello contiene l'oggetto e il corpo dell'email 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 possono farti risparmiare tempo e fatica quando invii tipi di email 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: non viene utilizzata la Template risorsa, ma quando si chiamano le operazioni API o v2 vengono forniti l'oggetto e il corpo dell'email contenente le variabili (segnaposto) in linea con il contenuto scritto insieme ai valori per tali variabili segnaposto. SendEmail SendBulkEmail

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

I seguenti limiti si applicano quando si utilizzano modelli archiviati:

  • Puoi creare fino a 20.000 modelli di email in 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 una dimensione massima di 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 in ogni chiamata all'SendBulkEmailoperazione. L'Destinationoggetto può contenere più destinatari definiti in ToAddresses CcAddresses, e BccAddresses. Il numero di destinazioni che puoi contattare con una singola chiamata all'API v2 potrebbe 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 di modelli archiviati che di 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, consultare la Guida per l'AWS Command Line Interface utente.

(Facoltativa) Parte 1: Impostazione delle notifiche degli eventi di Rendering Failure

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

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

Creazione del modello
  1. In un editor di testo, create un nuovo file e incollate il codice seguente personalizzandolo in base alle vostre 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 dell'email. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • Testo: il corpo del testo dell'email. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'email. 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, digita il seguente comando per creare un nuovo modello utilizzando l'operazione API CreateEmailTemplate v2:

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

Fase 3: invio dell'e-mail personalizzata

È possibile utilizzare le due seguenti 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 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'SendBulkEmailoperazione è utile per inviare email univoche a più oggetti di destinazione in una singola 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 vogliate utilizzare un modello memorizzato o un modello in linea, selezionate il rispettivo esempio di codice da incollare in un editor di testo, personalizzandolo in base alle vostre esigenze.

    Stored template code example

    Notate che il modello creato nel passaggio precedente viene referenziato come valore del 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 email del mittente.

    • Destinazione: un oggetto contenente i destinatari e-mail definiti nelle proprietà ToAddresses, CcAddresses, e BccAddresses. Possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.

    • TemplateName— Il nome della Template risorsa da applicare all'email.

    • TemplateData— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili definite nelle TemplateContent proprietà del modello archiviato, 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 (Facoltativa) Parte 1: Impostazione delle notifiche degli eventi di Rendering Failure.

    Inline template code example

    Si noti che le TemplateContent proprietà (che normalmente sarebbero definite in un modello archiviato) vengono definite in linea insieme alla TemplateData proprietà che lo rende un 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 email del mittente.

    • Destinazione: un oggetto contenente i destinatari e-mail definiti nelle proprietà ToAddresses, CcAddresses, e BccAddresses. Possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.

    • 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 dell'email. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • Testo: il corpo del testo dell'email. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'email. 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 (Facoltativa) Parte 1: Impostazione delle notifiche degli eventi di Rendering Failure.

  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'email:

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

Invio di email basate su modelli a più oggetti di destinazione

È possibile utilizzare l'SendBulkEmailoperazione per inviare un'e-mail a più oggetti di destinazione con una singola chiamata all'API SES v2. SES invia un'e-mail univoca al destinatario o ai destinatari di ciascun Destination oggetto.

Per inviare un'e-mail basata su un modello a più oggetti di destinazione
  1. A seconda che vogliate utilizzare un modello memorizzato o un modello in linea, selezionate il rispettivo esempio di codice da incollare in un editor di testo, personalizzandolo in base alle vostre esigenze.

    Stored template code example

    Notate che il modello creato nel passaggio precedente viene referenziato come valore del 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 email del mittente.

    • DefaultContent— Un oggetto JSON che contiene gli oggetti TemplateName eTemplateData.

    • 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 e-mail definiti nelle BccAddresses proprietà ToAddresses, CcAddresses, e. Possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.

    • ReplacementTemplateData— Una stringa JSON con escape che contiene coppie chiave-valore. Le chiavi corrispondono alle variabili nel 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 (Facoltativa) Parte 1: Impostazione delle notifiche degli eventi di Rendering Failure.

    Inline template code example

    Si noti che le TemplateContent proprietà (che normalmente sarebbero definite in un modello archiviato) vengono definite in linea insieme alla TemplateData proprietà che lo rende un 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 email del mittente.

    • DefaultContent— Un oggetto JSON che contiene gli oggetti TemplateContent eTemplateData.

    • 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 dell'email. Questa proprietà può contenere tag di sostituzione. L'esempio precedente include due tag: {{name}} e {{favoriteanimal}}.

      • Testo: il corpo del testo dell'email. I destinatari i cui client di posta elettronica non visualizzano contenuti HTML vedranno questa versione dell'email. 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 e-mail definiti nelle BccAddresses proprietà ToAddresses, CcAddresses, e. Possono essere utilizzati in qualsiasi combinazione e possono contenere uno o più indirizzi e-mail che riceveranno la stessa e-mail.

    • 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 (Facoltativa) Parte 1: Impostazione delle notifiche degli eventi di Rendering Failure.

  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