Python の boto3 を使って Amazon SES からメール送信するサンプルプログラムをメモしておきます。 SES のサンドボックスの解除など、SES を使う上で必要な設定は済んでいる前提です。
config.py
必須ではありませんが、送信関連パラメータは送信プログラム本体にハードコードしたり、毎回引数で指定するよりはマシかと思い、別ファイルから読み込む形式にしてみました。
REGION = 'us-east-1' FROM = 'no-reply@example.com' TO = 'to@example.com' REPLY = 'no-reply@example.com'
send_email.py
To だけを指定してテキスト形式メールを送信する、最小のサンプルは以下の通りです。
#!/usr/bin/env python """Send a e-mail.""" import sys import boto3 from config import * ARGS = sys.argv if len(ARGS) != 3: print('Usage: python send_mail.py [SUBJECT] [BODY]') sys.exit(1) SUBJECT = ARGS[1] BODY = ARGS[2] SES = boto3.client('ses', region_name=REGION) SES.send_email( Source=FROM, Destination={ 'ToAddresses': [TO] }, Message={ 'Subject': { 'Data': SUBJECT, 'Charset': 'UTF-8' }, 'Body': { 'Text': { 'Data': BODY, 'Charset': 'UTF-8' } } }, ReplyToAddresses=[REPLY] )
実行例
実行例は以下の通りです。
# python send_email.py 'Subject Test' 'Body Test'