使用 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 函数
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)。