

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用检索消息内容 AWS Lambda
<a name="lambda-content"></a>

配置用于管理 Amazon 电子邮件流的 AWS Lambda 函数后 WorkMail，您可以访问使用 Lambda 处理的电子邮件的全部内容。有关开始使用亚马逊版 Lambda 的更多信息 WorkMail，请参阅。[为 Amazon AWS Lambda 进行配置 WorkMail](lambda.md)

要访问电子邮件的全部内容，请使用 Amazon Mess WorkMail age Flow API 中的`GetRawMessageContent`操作。调用时传递给 Lambda 函数的电子邮件 ID 会向该 API 发送请求。然后，该 API 会使用电子邮件的完整 MIME 内容进行响应。有关更多信息，请参阅《[亚马逊 * WorkMail API 参考》中的 “亚马逊 WorkMail *消息流](https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations_Amazon_WorkMail_Message_Flow.html)”。

以下示例显示了使用 Python 运行时环境的 Lambda 函数如何检索完整的邮件内容。

**提示**  
如果您首先从 AWS Serverless Application Repository 向您的账户部署 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)，则系统会在您的账户中创建一个具有所有必要资源和权限的 Lambda 函数。然后，您可以根据使用案例将业务逻辑添加到 lambda 函数。

```
import boto3
import email
import os

def email_handler(event, context):
    workmail = boto3.client('workmailmessageflow', 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())
    print(parsed_msg)
```

有关分析传输中邮件内容的方法的更多详细示例，请参阅上的[amazon-workmail-lambda-templates](https://github.com/aws-samples/amazon-workmail-lambda-templates)存储库 GitHub。

**注意**  
您只能使用 Amazon WorkMail 消息流 API 来访问传输中的电子邮件。您只能在邮件发送或接收后 24 小时内访问。要以编程方式访问用户邮箱中的邮件，请使用亚马逊支持的其他协议之一 WorkMail，例如 IMAP 或 Exchange Web 服务 (EWS)。