使用 AWS Lambda 检索消息内容 - Amazon WorkMail

使用 AWS Lambda 检索消息内容

在配置 AWS Lambda 函数以管理 Amazon WorkMail 的电子邮件流后,您可以访问使用 Lambda 处理的电子邮件的完整内容。有关开始使用适用于 Amazon WorkMail 的 Lambda 的更多信息,请参阅为 Amazon WorkMail 配置 AWS Lambda

要访问电子邮件的完整内容,请使用 Amazon WorkMail Message Flow API 中的 GetRawMessageContent 操作。调用时传递给 Lambda 函数的电子邮件 ID 会向该 API 发送请求。然后,该 API 会使用电子邮件的完整 MIME 内容进行响应。有关更多信息,请参阅《Amazon WorkMail API 参考》中的 Amazon WorkMail 电子邮件流

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

提示

如果您首先将 Amazon WorkMail Hello World Lambda 函数从 AWS Serverless Application Repository 部署到您的账户,则系统会在您的账户中创建一个 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)

有关针对传输中消息内容的分析方法的更多详细示例,请参阅 GitHub 上的 amazon-workmail-lambda-templates 存储库。

注意

您只能使用 Amazon WorkMail Message Flow API 访问传输中的电子邮件。您只能在邮件发送或接收后 24 小时内访问。要以编程方式访问用户邮箱中的邮件,请使用 Amazon WorkMail 支持的其他协议之一,例如 IMAP 或 Exchange Web Services (EWS)。