

Aviso de fim do suporte: em 31 de março de 2027, AWS encerrará o suporte para a Amazon WorkMail. Depois de 31 de março de 2027, você não poderá mais acessar o WorkMail console da Amazon ou os WorkMail recursos da Amazon. Para obter mais informações, consulte [ WorkMail Fim do suporte da Amazon](https://docs.aws.amazon.com/workmail/latest/adminguide/workmail-end-of-support.html). 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualização do conteúdo de mensagens com o AWS Lambda
<a name="update-with-lambda"></a>

Depois de configurar uma AWS Lambda função síncrona para gerenciar fluxos de e-mail, você pode usar a `PutRawMessageContent` ação na API de fluxo de WorkMail mensagens da Amazon para atualizar o conteúdo das mensagens de e-mail em trânsito. Para obter mais informações sobre como começar a usar as funções Lambda para a Amazon WorkMail, consulte. [Configurar regras síncronas de **Executar o Lambda**](lambda.md#synchronous-rules) Para obter mais informações sobre a API, consulte [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html).

**nota**  
A PutRawMessageContent API requer o boto3 1.17.8, ou você pode adicionar uma camada à sua função Lambda. Para baixar a versão correta do boto3, consulte a página de inicialização [em](https://github.com/boto/boto). GitHub Para obter mais informações sobre como adicionar camadas, consulte [Configurar uma função para usar camadas](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-using).   
Confira a seguir um exemplo de camada: `"LayerArn":"arn:aws:lambda:${AWS::Region}:489970191081:layer:WorkMailLambdaLayer:2"`. Neste exemplo, substitua `${AWS::Region}` por uma região da AWS apropriada, como us-east-1.

**dica**  
Se você começar implantando a função Amazon 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) do AWS Serverless Application Repository em sua conta, o sistema criará uma função Lambda em sua conta com os recursos e permissões necessários. Você pode, então, adicionar sua lógica de negócios à função do Lambda com base no seu caso de uso.

À medida que avança, lembre-se do seguinte:
+ Use a [ GetRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_GetRawMessageContent.html)API para recuperar o conteúdo original da mensagem. Para obter mais informações, consulte [Recuperando o conteúdo da mensagem com AWS Lambda](lambda-content.md).
+ Depois de ter a mensagem original, altere o conteúdo MIME. Ao terminar, atualize a mensagem para um bucket do Amazon Simple Storage Service (Amazon S3) na sua conta. Certifique-se de que o bucket do S3 use o mesmo que suas Conta da AWS WorkMail operações da Amazon e que use a mesma região da AWS que suas chamadas de API.
+ Para WorkMail que a Amazon processe solicitações, seu bucket do S3 deve ter a política correta para acessar o objeto do S3. Para obter mais informações, consulte [Example S3 policy](#s3example).
+ Use a [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html)API para enviar o conteúdo atualizado da mensagem de volta para a Amazon WorkMail.

**nota**  
A `PutRawMessageContent` API garante que o conteúdo MIME da mensagem atualizada atenda aos padrões RFC, bem como aos critérios mencionados no tipo de [RawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_RawMessageContent.html)dados. Os e-mails enviados para sua WorkMail organização Amazon nem sempre atendem a esses padrões, então a `PutRawMessageContent` API pode rejeitá-los. Nesses casos, você pode consultar a mensagem de erro retornada para obter mais informações sobre como corrigir qualquer problema.

**Example Exemplo de política do S3**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "workmail.REGION.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::My-Test-S3-Bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "Bool": {
                    "aws:SecureTransport": "true"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:workmailmessageflow:us-east-1:111122223333:message/WORKMAIL_ORGANIZATION_ID/*"
                }
            }
        }
    ]
}
```

O exemplo a seguir mostra como uma função do Lambda usa o runtime do Python para atualizar o assunto de uma mensagem de e-mail em trânsito.

```
    import boto3
    import os
    import uuid
    import email
     
    def email_handler(event, context):
        workmail = boto3.client('workmailmessageflow', region_name=os.environ["AWS_REGION"])
        s3 = boto3.client('s3', region_name=os.environ["AWS_REGION"])
        
        msg_id = event['messageId']
        raw_msg = workmail.get_raw_message_content(messageId=msg_id)
        parsed_msg = email.message_from_bytes(raw_msg['messageContent'].read())
        
        # Updating subject. For more examples, see https://github.com/aws-samples/amazon-workmail-lambda-templates.
        parsed_msg.replace_header('Subject', "New Subject Updated From Lambda")
       
        # Store updated email in S3
        key = str(uuid.uuid4());
        s3.put_object(Body=parsed_msg.as_bytes(), Bucket="amzn-s3-demo-bucket", Key=key)
     
        # Update the email in WorkMail
        s3_reference = {
            'bucket': "amzn-s3-demo-bucket",
            'key': key
        }
        content = {
            's3Reference': s3_reference
        }
        workmail.put_raw_message_content(messageId=msg_id, content=content)
```

Para obter mais exemplos de maneiras de analisar o conteúdo de mensagens em trânsito, consulte o [ amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)repositório em. GitHub