Python
AWS
ses
python3
lambda

AWS SESをLambdaから使う

何をするか

  • AWS SESの利用を開始する
  • AWS Lambda(Python)からAWS SESを起動する
  • 5分くらいでできる

AWS SESの利用を開始する

SES ConsoleからEmail Addresses を選択
image.png

Varify a New Email Address を選択
image.png

送信したいアドレスを入力して完了すると、そのアドレスに検証用のURLが送られるので、URLに遷移して検証完了
アドレスを選択して「Send a Test Email」でテストメール送信できる

AWS Lambda(Python)からAWS SESを起動する

以下のLambdaを作成
- ランタイム:Python3.6
- ハンドラ:qiita.lambda_handler
- 実行ロール:AmazonSESFullAccess

qiita.py
import boto3

def ses_send_email(_from, _to, _subject, _body):
    _ses = boto3.client('ses', region_name='us-west-2')
    _response = _ses.send_email(
        Source=_from,
        Destination={'ToAddresses': _to},
        Message={
            'Subject':{
                'Data': _subject,
            },
            'Body': {
                'Text': {
                    'Data': _body,
                },
            }
        }
    )

    return _response

def lambda_handler(event, context):
    _from = 'from@example.com' # fromは予約語で使えない
    _to = ['to@example.com'] #配列
    _subject = 'Subject: 件名'
    _body = 'Body: 本文'
    _response = ses_send_email(_from, _to, _subject, _body)
    return _response

実際のサービスに使うために ※後ほど記事化

  • SESをサンドボックスの外に出す
  • mail送信処理のLambda共通関数化
  • CloudFormation(AWS SAM)化