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

Ultimo aggiornamento: 10-11-2020

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 Lambda utilizzando Amazon SES, è necessario quanto segue:

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.

Risoluzione

Creare una policy e un ruolo di esecuzione IAM

1.    Crea una policy IAM utilizzando l'editor di policy JSON. Incolla questo documento della policy JSON nell'editor della policy:

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

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

2.    Collega la policy IAM a un ruolo IAM che si prevede di assegnare alla tua funzione Lambda.

Per le fasi dettagliate, consulta Aggiunta di autorizzazioni di identità IAM (console). Quindi segui le istruzioni in Utilizzare una policy gestita come policy di autorizzazione per un'identità (console).

Verificare la propria identità Amazon SES

Verifica l'identità Amazon SES (dominio o indirizzo e-mail) da cui invierai i messaggi Amazon SES.

Creare o aggiornare la propria funzione Lambda

Se non è già stato fatto, crea una funzione Lambda utilizzando la console Lambda o creando e caricando il pacchetto di implementazione.

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

2.    Scegli il nome della funzione.

3.    Nel pannello Autorizzazioni, sottoRuolo di esecuzione, conferma che il ruolo IAM con autorizzazioni Amazon SES è assegnato alla funzione.

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

Nota: sostituisci us-west-2 con la Regione AWS della tua identità Amazon SES verificata. Sostituisci recipientEmailAddress con un indirizzo e-mail a cui desideri inviare l'e-mail. Se il tuo account è ancora nella sandbox Amazon SES nella Regione dell’identità Amazon SES verificata, bisogna modificare recipientEmailAddress con un indirizzo e-mail verificato da Amazon SES nello stesso account e Regione. 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 ("Email 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()
};

Nota: se non modifichi us-west-2 nella Regione della tua identità Amazon SES verificata, ricevi un messaggio di errore che dice "L'indirizzo e-mail non è verificato" e il codice di errore "MessageRejected". Se esegui la funzione Lambda in una Regione in cui Amazon SES non è supportato, ricevi un messaggio di errore che dice "Host inaccessibile" e il codice di errore "UnknownEndpoint".

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

5.    Scegli Implementare, che salverà gli aggiornamenti nella funzione.

Inviare un’e-mail 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?