Python の boto3 から Amazon SES を使ってメール送信する
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 だけを指定してテキスト形式メールを送信する、最小のサンプルは以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 | #!/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'
|