Open1
【Lambda SES】LambdaでSESを動かし、メールを送信してみる
概要
LambdaでSESを動かしメールを送信してみた
すること
- SESの設定
- IAM
- ロールの作成
- LambdaとSESのポリシーアタッチ
- Lambdaの作成
- メールを送ってみる
したこと
SESの設定
AWS SES の画面でVerify a New Email Address をクリックし、送信元となるEmailアドレスを登録する
登録したアドレスに認証用のメールが送られてくるので、アクセスするとVerifyができる
認証が完了した、アドレスを選択し、Send a Test Email を押してゴニョゴニョするとメール送信テストができる(設定の上雇用によるが、僕の場合、迷惑メールフォルダに送られてしまった。。)
IAM ロールの作成
Lambda関数を作成する前に、LambdaとSESの操作が可能なロールを作成しておく。後でアタッチする
とりあえず、AWSLambda_FullAccessとAmazonSESFullAccessポリシーをつけたロールを作成する(lambda_to_sesとしておく)
Lambdaの作成
関数の作成 → 関数名の入力(Senderとする) → デフォルトの実行ロールの変更 → 既存のロールを選択する → 先程作成した、lambda_to_sesを選択
今回言語はPython3.6を選択した。
後はバーっとメール送信のためのソースを書いてあげる。
lambda
import boto3
import json
SRC_MAIL = "hoge@hoge.jp"
DST_MAIL = "fuga@fuga.jp"
REGION = "ap-northeast-1"
def send_email(source, to, subject, body):
client = boto3.client('ses', region_name=REGION)
response = client.send_email(
Source=source,
Destination={
'ToAddresses': [
to,
]
},
Message={
'Subject': {
'Data': subject,
},
'Body': {
'Text': {
'Data': body,
},
}
}
)
return response
def lambda_handler(event, context):
email = "テスト配信"
message = json.dumps(event, indent = 4)
r = send_email(SRC_MAIL, DST_MAIL, email, message)
return r
こんなかんじで 書いてあげて、テストを実行すると、DST_MAIL(この場合は "fuga@fuga.jp")に設定したアドレスにメールがとぶ。