

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Nachrichteninhalte mit AWS Lambda aktualisieren
<a name="update-with-lambda"></a>

Nachdem Sie eine synchrone AWS Lambda Funktion zur Verwaltung von E-Mail-Datenströmen konfiguriert haben, können Sie die `PutRawMessageContent` Aktion in der Amazon WorkMail Message Flow-API verwenden, um den Inhalt von E-Mail-Nachrichten während der Übertragung zu aktualisieren. Weitere Informationen zu den ersten Schritten mit Lambda-Funktionen für Amazon finden Sie WorkMail unter[Konfiguration synchroner **Run-Lambda-Regeln**](lambda.md#synchronous-rules). Weitere Informationen zur API finden Sie unter [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html).

**Anmerkung**  
Die PutRawMessageContent API benötigt boto3 1.17.8, oder Sie können Ihrer Lambda-Funktion eine Ebene hinzufügen. [Informationen zum Herunterladen der richtigen Boto3-Version finden Sie auf der Boto-Seite unter. GitHub](https://github.com/boto/boto) Weitere Informationen zum Hinzufügen von Ebenen finden [Sie unter Eine Funktion für die Verwendung von Ebenen konfigurieren](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-using).   
Hier ist ein Beispiel für eine Ebene:`"LayerArn":"arn:aws:lambda:${AWS::Region}:489970191081:layer:WorkMailLambdaLayer:2"`. Ersetzen Sie in diesem Beispiel `${AWS::Region}` durch eine entsprechende AWS-Region, z. B. us-east-1.

**Tipp**  
Wenn Sie zunächst die Amazon WorkMail [Hello World Lambda-Funktion](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:489970191081:applications/workmail-hello-world-python) aus dem AWS Serverless Application Repository für Ihr Konto bereitstellen, erstellt das System in Ihrem Konto eine Lambda-Funktion mit den erforderlichen Ressourcen und Berechtigungen. Anschließend können Sie der Lambda-Funktion Geschäftslogik hinzufügen, die auf Ihren Anwendungsfällen basiert.

Denken Sie dabei an Folgendes:
+ Verwenden Sie die [ GetRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_GetRawMessageContent.html)API, um den ursprünglichen Nachrichteninhalt abzurufen. Weitere Informationen finden Sie unter [Nachrichteninhalt wird abgerufen mit AWS Lambda](lambda-content.md).
+ Sobald Sie die ursprüngliche Nachricht haben, ändern Sie den MIME-Inhalt. Wenn Sie fertig sind, laden Sie die Nachricht in einen Amazon Simple Storage Service (Amazon S3) -Bucket in Ihrem Konto hoch. Stellen Sie sicher, dass der S3-Bucket dasselbe verwendet AWS-Konto wie Ihr WorkMail Amazon-Betrieb und dass er dieselbe AWS-Region wie Ihre API-Aufrufe verwendet.
+ Damit Amazon WorkMail Anfragen bearbeiten kann, muss Ihr S3-Bucket über die richtige Richtlinie verfügen, um auf das S3-Objekt zugreifen zu können. Weitere Informationen finden Sie unter [Example S3 policy](#s3example).
+ Verwenden Sie die [ PutRawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_PutRawMessageContent.html)API, um den aktualisierten Nachrichteninhalt zurück an Amazon zu senden WorkMail.

**Anmerkung**  
Die `PutRawMessageContent` API stellt sicher, dass der MIME-Inhalt der aktualisierten Nachricht den RFC-Standards sowie den im [RawMessageContent](https://docs.aws.amazon.com/workmail/latest/APIReference/API_messageflow_RawMessageContent.html)Datentyp genannten Kriterien entspricht. E-Mails, die an Ihre WorkMail Amazon-Organisation eingehen, erfüllen diese Standards nicht immer, sodass die `PutRawMessageContent` API sie möglicherweise ablehnt. In solchen Fällen finden Sie in der zurückgegebenen Fehlermeldung weitere Informationen zur Behebung von Problemen.

**Example Beispiel für eine S3-Richtlinie**    
****  

```
{
    "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/*"
                }
            }
        }
    ]
}
```

Das folgende Beispiel zeigt, wie eine Lambda-Funktion die Python-Laufzeit verwendet, um den Betreff einer E-Mail-Nachricht während der Übertragung zu aktualisieren.

```
    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)
```

Weitere Beispiele für Methoden zur Analyse des Inhalts von Nachrichten während der Übertragung finden Sie im [ amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)Repository unter. GitHub