

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用したメッセージコンテンツの取得 AWS Lambda
<a name="lambda-content"></a>

Amazon WorkMail の E メールフローを管理するように AWS Lambda 関数を設定したら、Lambda を使用して処理される E メールメッセージの完全なコンテンツにアクセスできます。Lambda for Amazon WorkMail の使用開始に関する詳細については、[Amazon WorkMail AWS Lambda の の設定](lambda.md) を参照してください。

E メールメッセージのすべてのコンテンツにアクセスするには、Amazon WorkMail Message Flow API の `GetRawMessageContent`アクションを使用します。呼び出し時に Lambda 関数に渡される E メールメッセージ ID は、API にリクエストを送信します。これを受けて、API は E メールメッセージの完全な MIME コンテンツで応答します。詳細については、*Amazon WorkMail API リファレンス* の [Amazon WorkMail Message Flow](https://docs.aws.amazon.com/workmail/latest/APIReference/API_Operations_Amazon_WorkMail_Message_Flow.html) を参照してください。

次の例では、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 は、送信中の E メールメッセージにアクセスする場合のみ使用します。メッセージは、送受信されてから 24 時間以内にのみアクセス可能です。ユーザーのメールボックスのメッセージにプログラムを使ってアクセスするには、IMAP や Exchange Web Services (EWS) など、Amazon WorkMail でサポートされている他のプロトコルの 1 つを使用します。