In che modo è possibile inviare e-mail utilizzando Lambda e Amazon SES?

Ultimo aggiornamento: 15-09-2021

Voglio utilizzare AWS Lambda per inviare e-mail utilizzando Amazon Simple Email Service (Amazon SES). Come è possibile configurarlo?

Breve descrizione

Per inviare e-mail da una funzione Lambda utilizzando Amazon SES, procedere come segue:

1.    Crea una policy di AWS Identity and Access Management (IAM) e un ruolo di esecuzione per Lambda per eseguire la chiamata API.

2.    Verifica la tua identità Amazon SES (dominio o indirizzo e-mail).

3.    Crea o aggiorna una funzione Lambda che include la logica per l'invio di e-mail tramite Amazon SES.

Nota: per includere un allegato PDF nelle tue e-mail, devi utilizzare l'operazione API SendRawEmail di Amazon SES. Per ulteriori informazioni, consulta Invio di e-mail non elaborate utilizzando l'API Amazon SES.

Risoluzione

Nota: il codice della funzione Lambda di esempio in Node.js in questo articolo viene fornito così com'è. Adatta l'esempio al tuo caso d'uso o progettane uno nel tuo linguaggio di programmazione preferito.

Creare una policy IAM e un ruolo di esecuzione per Lambda per eseguire la chiamata API

1.    Crea una policy IAM utilizzando l'editor di policy JSON. Quando crei la policy, copia e incolla il seguente documento sulla policy JSON nell'editor della policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
    ]
}

Nota: per ulteriori informazioni ed esempi su come limitare l'accesso per questa policy IAM, consulta Esempi di policy IAM per Amazon SES.

2.    Allegare la policy IAM a un ruolo IAM. Per istruzioni, vedere la sezione Per utilizzare un criterio gestito come criterio di autorizzazioni per un'identità (console) in Aggiunta di autorizzazioni di identità IAM (console).

Nota: Assegnerai questo ruolo IAM alla tua funzione Lambda nei passaggi seguenti.

Verifica la tua identità Amazon SES verificata (dominio o indirizzo e-mail)

Per verificare un dominio, consulta Verifica dei domini in Amazon SES.

Per verificare un indirizzo e-mail, consulta Verifica degli indirizzi e-mail in Amazon SES.

Crea o aggiorna una funzione Lambda che include la logica per l'invio di e-mail tramite Amazon SES

1.    Se non l'hai già fatto, crea una funzione Lambda.

Nota: è possibile creare una funzione Lambda utilizzando la console Lambda o compilando e caricando un pacchetto di distribuzione.

2.    Nella console Lambda, nel pannello di navigazione a sinistra, scegli Funzioni.

3.    Scegli il nome della funzione.

4.    Nella scheda Configurazione, nel riquadro Autorizzazioni, esaminare il ruolo di esecuzione della funzione. Verifica che il ruolo IAM con autorizzazioni Amazon SES creato in precedenza sia elencato. Se il ruolo IAM corretto non è elencato, assegnare il ruolo corretto alla funzione.

5.    Sotto Codice funzione, nel pannello editor, incolla il seguente codice funzione di esempio:

Importante: sostituisci us-west-2 con la Regione AWS della tua identità Amazon SES verificata. Sostituisci “RecipientEmailAddress”, ... con uno o più indirizzi e-mail a cui desideri inviare l'e-mail. Sostituisci SourceEmailAddress con il tuo indirizzo e-mail del mittente verificato da Amazon SES o qualsiasi indirizzo e-mail da un dominio verificato da Amazon SES. Facoltativamente, modifica il corpo del messaggio ("Prova") e la riga dell'oggetto ("E-mail di prova") in base alle tue preferenze.

// Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

var aws = require("aws-sdk");
var ses = new aws.SES({ region: "us-west-2" });
exports.handler = async function (event) {
  var params = {
    Destination: {
      ToAddresses: ["RecipientEmailAddress", ...],
    },
    Message: {
      Body: {
        Text: { Data: "Test" },
      },

      Subject: { Data: "Test Email" },
    },
    Source: "SourceEmailAddress",
  };
 
  return ses.sendEmail(params).promise()
};

Per ulteriori informazioni sull'utilizzo dell'API sendEmail, consulta la documentazione dell'SDK AWS per JavaScript.

5.    Scegli Implementa.

(Facoltativo) Invia un'email di prova

1.    Nella console Lambda, configura un evento di prova per la funzione.

Nota: il payload di prova è obbligatorio ma non viene utilizzato per questo esempio di codice.

2.    Scegli Prova. Lambda utilizza Amazon SES per inviare l'e-mail di prova al destinatario.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?