

Avviso di fine del supporto: il 31 marzo 2027, AWS terminerà il supporto per Amazon WorkMail. Dopo il 31 marzo 2027, non potrai più accedere alla WorkMail console Amazon o alle WorkMail risorse Amazon. Per ulteriori informazioni, consulta la pagina [di WorkMail fine del supporto di Amazon](https://docs.aws.amazon.com/workmail/latest/adminguide/workmail-end-of-support.html). 

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

# Configurazione AWS Lambda per Amazon WorkMail
<a name="lambda"></a>

Utilizza l'azione **Esegui Lambda** nelle regole del flusso di posta elettronica in entrata e in uscita per passare i messaggi e-mail che corrispondono alle regole a una AWS Lambda funzione di elaborazione.

Scegli tra le seguenti configurazioni per un'azione **Esegui Lambda** in Amazon. WorkMail

**Configurazione Synchronous **Run Lambda****  
I messaggi di posta elettronica che corrispondono alla regola del flusso vengono passati a una funzione Lambda per l'elaborazione prima di essere inviati o recapitati. Utilizzate questa configurazione per modificare il contenuto delle e-mail. Puoi anche controllare il flusso di posta elettronica in entrata o in uscita per diversi casi d'uso. Ad esempio, una regola passata a una funzione Lambda può bloccare la consegna di messaggi e-mail sensibili, rimuovere allegati o aggiungere dichiarazioni di non responsabilità.

****Configurazione Run Lambda asincrona****  
I messaggi e-mail che corrispondono alla regola del flusso vengono passati a una funzione Lambda per l'elaborazione durante l'invio o la consegna. Questa configurazione non influisce sulla consegna delle e-mail e viene utilizzata per attività quali la raccolta di parametri relativi ai messaggi e-mail in entrata o in uscita.

Sia che scegliate una configurazione sincrona o asincrona, l'oggetto evento passato alla funzione Lambda contiene i metadati per l'evento e-mail in entrata o in uscita. È inoltre possibile utilizzare l'ID messaggio nei metadati per accedere all'intero contenuto del messaggio e-mail. Per ulteriori informazioni, consulta [Recupero del contenuto del messaggio con AWS Lambda](lambda-content.md). Per ulteriori informazioni sugli eventi, consulta [Dati degli eventi Lambda](#lambda-data).

Per ulteriori informazioni sulle regole del flusso di posta in entrata e in uscita, consulta [Gestione dei flussi di e-mail](email-flows.md). Per ulteriori informazioni su Lambda, consulta la [Guida per gli sviluppatori di *AWS Lambda *](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

**Nota**  
Attualmente, le regole del flusso di posta elettronica Lambda fanno riferimento solo alle funzioni Lambda nella stessa regione AWS e Account AWS nell'organizzazione Amazon WorkMail da configurare.

## Guida introduttiva AWS Lambda per Amazon WorkMail
<a name="start-lambda"></a>

Per iniziare a usare AWS Lambda con Amazon WorkMail, ti consigliamo di distribuire la funzione [ WorkMail Hello World Lambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python) dal AWS Serverless Application Repository al tuo account. La funzione dispone di tutte le risorse necessarie e le autorizzazioni sono configurate per te. Per altri esempi, consulta il [amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)repository su. GitHub

Se scegli di creare la tua funzione Lambda, devi configurare le autorizzazioni utilizzando (). AWS Command Line Interface AWS CLI Nel seguente comando di esempio, effettuate le seguenti operazioni:
+ Sostituisci `MY_FUNCTION_NAME` con il nome della tua funzione Lambda.
+ `REGION`Sostituiscilo con la tua regione Amazon WorkMail AWS. Le WorkMail regioni Amazon disponibili includono `us-east-1` (Stati Uniti orientali (Virginia settentrionale)), `us-west-2` (Stati Uniti occidentali (Oregon)) e `eu-west-1` (Europa (Irlanda)).
+ Sostituiscilo `AWS_ACCOUNT_ID` con il tuo ID a 12 cifre Account AWS .
+ `WORKMAIL_ORGANIZATION_ID`Sostituiscilo con WorkMail l'ID della tua organizzazione Amazon. Puoi trovarlo sulla scheda della tua organizzazione nella pagina **Organizations**.



```
aws --region REGION lambda add-permission --function-name MY_FUNCTION_NAME 
--statement-id AllowWorkMail 
--action "lambda:InvokeFunction" 
--principal workmail.REGION.amazonaws.com
--source-arn arn:aws:workmail:REGION:AWS_ACCOUNT_ID:organization/WORKMAIL_ORGANIZATION_ID
```

Per ulteriori informazioni sull'utilizzo di AWS CLI, consulta la [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

## Configurazione delle regole Run **Lambda** sincrone
<a name="synchronous-rules"></a>

Per configurare una regola **Esegui Lambda** sincrona, crea una regola del flusso di posta elettronica con l'azione **Esegui Lambda** e seleziona la casella di controllo Esegui in modo **sincrono**. Per ulteriori informazioni sulla creazione di regole del flusso di e-mail, consulta [Creazione di regole del flusso di posta elettronica](create-email-rules.md).

Per completare la creazione della regola sincrona, aggiungi Lambda Amazon Resource Name (ARN) e configura le seguenti opzioni.

****Operazione di fallback****  
L'azione WorkMail applicata da Amazon se la funzione Lambda non viene eseguita. **Questa azione si applica anche a tutti i destinatari che vengono omessi dalla risposta Lambda se il flag AllRecipients non è impostato.** L'**azione Fallback** non può essere un'altra azione Lambda.

****Timeout regola** (in minuti).**  
Il periodo di tempo durante il quale la funzione Lambda viene ritentata se Amazon WorkMail non riesce a richiamarla. **Operazione di fallback** viene applicata alla fine di questo periodo di tempo.

**Nota**  
Le regole Synchronous **Run Lambda** supportano solo **\$1** la condizione di destinazione.

## Dati degli eventi Lambda
<a name="lambda-data"></a>

La funzione Lambda viene attivata utilizzando i seguenti dati di evento. La presentazione dei dati varia a seconda del linguaggio di programmazione utilizzato per la funzione Lambda.

```
{
    "summaryVersion": "2018-10-10",
    "envelope": {
        "mailFrom" : {
            "address" : "from@example.com"
        },
        "recipients" : [
           { "address" : "recipient1@example.com" },
           { "address" : "recipient2@example.com" }
        ]
    },
    "sender" : {
        "address" :  "sender@example.com"
    },
    "subject" : "Hello From Amazon WorkMail!",
    "messageId": "00000000-0000-0000-0000-000000000000",
    "invocationId": "00000000000000000000000000000000",
    "flowDirection": "INBOUND",
    "truncated": false
}
```

Il JSON di evento include i seguenti dati.

**summaryVersion**  
Il numero di versione per`LambdaEventData`. Si aggiorna solo quando apporti una modifica incompatibile con le versioni precedenti. `LambdaEventData`

**envelope**  
La busta del messaggio di posta elettronica, che include i seguenti campi.    
**mailFrom**  
L'indirizzo **Da**, che di solito è l'indirizzo e-mail dell'utente che ha inviato il messaggio e-mail. Se l'utente ha inviato il messaggio come un altro utente o per conto di un altro utente, il campo **mailFrom** restituisce l'indirizzo e-mail dell'utente per conto del quale è stata inviata l'e-mail e non l'indirizzo e-mail del mittente effettivo.  
**recipients**  
L'elenco degli indirizzi e-mail dei destinatari. **Amazon WorkMail non fa distinzione tra To, **CC** o **BCC**.**  
Per le regole del flusso di posta elettronica in entrata, questo elenco include i destinatari in tutti i domini dell' WorkMailorganizzazione Amazon in cui crei la regola. La funzione Lambda viene richiamata separatamente per ogni conversazione SMTP dal mittente e il campo destinatari elenca i destinatari di quella conversazione SMTP. I destinatari con domini esterni non sono inclusi.

**mittente**  
L'indirizzo e-mail dell'utente che ha inviato il messaggio e-mail per conto di un altro utente. Questo campo è impostato solo quando un messaggio e-mail viene inviato per conto di un altro utente.

**subject**  
La riga dell'oggetto del messaggio e-mail. Viene troncata quando supera il limite di 256 caratteri.

**messageId**  
Un ID univoco utilizzato per accedere all'intero contenuto del messaggio e-mail quando si utilizza l'SDK Amazon WorkMail Message Flow.

**InvocationID**  
L'ID per una chiamata Lambda univoca. Questo ID rimane lo stesso quando una funzione Lambda viene chiamata più di una volta per la stessa. **LambdaEventData** Utilizzare per rilevare i tentativi ed evitare la duplicazione.

**flowDirection**  
Indica la direzione del flusso di e-mail, **INBOUND** o **OUTBOUND**.

**truncated**  
Si applica alla dimensione del payload e non alla lunghezza della riga dell'oggetto. Se `true`, la dimensione del payload supera il limite di 128 KB, per cui l'elenco dei destinatari viene troncato in modo da soddisfare il limite.

## Schema di risposta **Lambda Synchronous Run**
<a name="synchronous-schema"></a>

Quando una regola del flusso e-mail con un'azione sincrona **Esegui Lambda** corrisponde a un messaggio e-mail in entrata o in uscita, Amazon WorkMail chiama la funzione Lambda configurata e attende la risposta prima di agire sul messaggio e-mail. La funzione Lambda restituisce una risposta secondo uno schema predefinito che elenca le azioni, i tipi di azione, i parametri applicabili e i destinatari a cui si applica l'azione.

L'esempio seguente mostra una risposta sincrona **Run Lambda**. Le risposte variano in base al linguaggio di programmazione utilizzato per la funzione Lambda.

```
{
    "actions": [                          
      {
        "action" : {                       
          "type": "string",                 
          "parameters": { various }       
        },
        "recipients": [list of strings],      
        "allRecipients": boolean            
      }
    ]
}
```

La risposta JSON include i seguenti dati.

**operazione**  
Operazione da intraprendere per i destinatari.

**tipo**  
Tipo di operazione. I tipi di azione non vengono restituiti per le azioni Run **Lambda** asincrone.  
I tipi di operazioni delle regole in entrata includono **BOUNCE**, **DROP**, **DEFAULT**, **BYPASS\$1SPAM\$1CHECK** e **MOVE\$1TO\$1JUNK**. Per ulteriori informazioni, consulta [Operazioni delle regole di posta in entrata](email-flows.md#email-flows-rule-actions).  
I tipi di operazioni delle regole in uscita includono **BOUNCE**, **DROP** e **DEFAULT**. Per ulteriori informazioni, consulta [Operazioni delle regole di posta in uscita](email-flows.md#email-flows-rule-outbound). 

**parametri**  
Parametri di operazione aggiuntivi. Supportato per il tipo di operazione **BOUNCE** come oggetto JSON con la chiave **bounceMessage** e la **stringa** del valore. Questo messaggio di mancato recapito (bounce) viene utilizzato per creare il messaggio e-mail di mancato recapito (bounce).

**recipients**  
Elenco di indirizzi e-mail su cui deve essere intrapresa l'operazione. È possibile aggiungere nuovi destinatari alla risposta anche se non sono stati inclusi nell'elenco dei destinatari originali. Questo campo non è obbligatorio se **allRecipients** ha il valore true per un'operazione.  
Quando viene richiesta un'azione Lambda per la posta elettronica in entrata, è possibile aggiungere solo nuovi destinatari che provengono dalla propria organizzazione. I nuovi destinatari vengono aggiunti alla risposta come **Ccn**.

**allRecipients**  
Se impostato su true, applica l'azione a tutti i destinatari che non sono soggetti a un'altra azione specifica nella risposta Lambda.

### Limiti di azione **Lambda di Synchronous Run**
<a name="synchronous-limits"></a>

**I seguenti limiti si applicano quando Amazon WorkMail richiama le funzioni Lambda per azioni sincrone Run Lambda:** 
+ Le funzioni Lambda devono rispondere entro 15 secondi o essere trattate come chiamate fallite.
**Nota**  
Il sistema riprova la chiamata per l'intervallo di timeout della **regola** specificato.
+ Sono consentite risposte della funzione Lambda fino a 256 KB.
+ Nella risposta sono consentite fino a 10 operazioni univoche. Le operazioni superiori a 10 sono soggette all'**Operazione di fallback** configurata. 
+ Sono consentiti fino a 500 destinatari per le funzioni Lambda in uscita.
+ Il valore massimo per **Timeout regola** è 240 minuti. Se è configurato il valore minimo 0, non ci sono nuovi tentativi prima che Amazon WorkMail applichi l'azione di fallback.

### Errori dell'azione Synchronous **Run Lambda**
<a name="synchronous-failures"></a>

**Se Amazon non WorkMail riesce a richiamare la funzione Lambda a causa di un errore, di una risposta non valida o di un timeout Lambda, WorkMail Amazon ritenta la chiamata con un backoff esponenziale che riduce la velocità di elaborazione fino al completamento del periodo di timeout della regola.** Quindi, l'**Operazione di fallback** viene applicata a tutti i destinatari del messaggio e-mail. Per ulteriori informazioni, consulta [Configurazione delle regole Run **Lambda** sincrone](#synchronous-rules).

## Esempi di risposte **Run Lambda** sincrone
<a name="synchronous-responses"></a>

Gli esempi seguenti mostrano la struttura delle risposte **Run Lambda** sincrone comuni.

**Example : rimozione dei destinatari specificati da un messaggio e-mail**  
L'esempio seguente dimostra la struttura di una risposta sincrona Run **Lambda per rimuovere i destinatari da** un messaggio di posta elettronica.  

```
{
    "actions": [
      {
        "action": {
          "type": "DEFAULT"
        },
        "allRecipients": true
      },
      {
        "action": {
          "type": "DROP"
        },
        "recipients": [
          "drop-recipient@example.com"
        ]
      }
    ]
}
```

**Example : mancato recapito (bounce) con un messaggio e-mail personalizzato**  
L'esempio seguente dimostra la struttura di una risposta sincrona Run **Lambda** per il rimbalzo con un messaggio e-mail personalizzato.  

```
{
    "actions" : [
      {
        "action" : {
          "type": 'BOUNCE',
          "parameters": {
            "bounceMessage" : "Email in breach of company policy."
          }
        },
        "allRecipients": true
      }
    ]
}
```

**Example : aggiunta di destinatari a un messaggio e-mail**  
L'esempio seguente dimostra la struttura di una risposta sincrona Run **Lambda** per aggiungere destinatari al messaggio di posta elettronica. Questa operazione non aggiorna i campi **A** o **Cc** del messaggio e-mail.  

```
{
    "actions": [
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "recipients": [
          "new-recipient@example.com"
         ]
      },
      {
        "action": { 
          "type": "DEFAULT" 
        },
        "allRecipients": true
      }
    ]
}
```

[Per altri esempi di codice da utilizzare durante la creazione di funzioni Lambda per le azioni Esegui **Lambda, consulta i modelli di Amazon Lambda**. WorkMail ](https://github.com/aws-samples/amazon-workmail-lambda-templates)

## Ulteriori informazioni sull'utilizzo di Lambda con Amazon WorkMail
<a name="lambda-more"></a>

Puoi anche accedere al contenuto completo del messaggio e-mail che attiva la funzione Lambda. Per ulteriori informazioni, consulta [Recupero del contenuto del messaggio con AWS Lambda](lambda-content.md). 