フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

AWS SESの設定とLambdaでメール送信②

はじめに

AmazonSESでEメールを受信する設定の続き

  • メール受信時にLambdaを起動してメール転送する関数を指定する f:id:PX-WING:20201029114243p:plain
  • ルールの名前を任意なものを入力して「Next Step」ボタンをクリックする f:id:PX-WING:20201029114603p:plain
  • 設定内容確認画面が表示される。問題がなければ「Create Rule」ボタンをクリックする f:id:PX-WING:20201029114929p:plain
  • Lamdaの作成した関数に権限が足りないというエラーがメッセージが表示される f:id:PX-WING:20201029115321p:plain

Lamda関数を実行する権限を付与する

  • 「AWSLambdaExecute」を追加すると、上記のエラーは解消されて登録される f:id:PX-WING:20201029133813p:plain
  • 登録完了 f:id:PX-WING:20201029134015p:plain

送信テスト

  • Lambdaの関数にログを仕込み。メール受信時にどのような情報が取得できるか確認する。
import boto3
import json
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def send_email
   ※前回と同様のため、省略

def lambda_handler(event, context):
    logger.info(event)
    email = "error occured"
    message = json.dumps(event, indent = 4)
    r = send_email(SRC_MAIL, DST_MAIL, email, message)
    return r
  • CloudWatchでログを確認するとメールの内容を確認することができるが、メールの本文やメールの添付ファイルを取得して転送するのに、いろいろと工夫が必要そうなので、メールの内容をS3に保存して保存した内容をメールで転送するように変更する f:id:PX-WING:20201029134706p:plain