

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 [relativa WorkMail alla 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>

Utilizzate 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 di posta elettronica 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 si scelga 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.

## Nozioni di base su 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 repository [amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates) 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.
+ Sostituisci `REGION` 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 della modalità sincrona **Esegui Lambda** rules
<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 **\*** 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.

## Synchronous (Sincrona) **Esegui Lambda** schema di risposta
<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\_SPAM\_CHECK** e **MOVE\_TO\_JUNK**. 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.

### Synchronous (Sincrona) **Esegui Lambda** limiti di azione
<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 non riuscite.
**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.

### Synchronous (Sincrona) **Esegui Lambda** errori di azione
<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 della modalità sincrona **Esegui Lambda** rules](#synchronous-rules).

## Esempio sincrono **Esegui Lambda** responses
<a name="synchronous-responses"></a>

Gli esempi seguenti illustrano 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). 