

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 擷取訊息內容 AWS Lambda
<a name="lambda-content"></a>

設定 AWS Lambda 函數以管理 Amazon WorkMail 的電子郵件流程後，您可以存取使用 Lambda 處理之電子郵件訊息的完整內容。如需 Lambda for Amazon WorkMail 入門的詳細資訊，請參閱 [AWS Lambda 為 Amazon WorkMail 設定](lambda.md)。

若要存取電子郵件訊息的完整內容，請使用 Amazon WorkMail Message Flow API 中的 `GetRawMessageContent`動作。呼叫時傳送到 Lambda 函數的電子郵件訊息 ID 會將請求傳送至 API。接著，API 會以電子郵件訊息的完整 MIME 內容來回應。如需詳細資訊，請參閱[《Amazon WorkMail API 參考》中的 Amazon WorkMail 訊息流程](https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations_Amazon_WorkMail_Message_Flow.html)。 *Amazon WorkMail *

下列範例顯示使用 Python 執行時間環境的 Lambda 函數如何擷取完整訊息內容。

**提示**  
如果您從 將 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)部署 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](https://github.com/aws-samples/amazon-workmail-lambda-templates) 儲存庫。

**注意**  
您只能使用 Amazon WorkMail Message Flow API 存取傳輸中的電子郵件訊息。您只能在傳送或接收訊息的 24 小時內存取訊息。若要以程式設計方式存取使用者信箱中的訊息，請使用 Amazon WorkMail 支援的其他通訊協定，例如 IMAP 或 Exchange Web Services (EWS)。