boto3を使えば、PythonからSES経由でメール送信ができます。
client = boto3.client('ses')
response = client.send_email(
Source='YOUR@EMAIL.ADDRESS',
Destination={
'ToAddresses': [
'TO_ADDRESS@example.com',
],
'CcAddresses': [
'CC_ADDRESS@example.com',
],
'BccAddresses': [
'BCC_ADDRESS@example.com',
]
},
Message={
'Subject': {
'Data': 'SES Mail by Python',
'Charset': 'UTF-8'
},
'Body': {
'Text': {
'Data': 'This is text mail',
'Charset': 'UTF-8'
},
'Html': {
'Data': '<h1>This is Html Mail</h1>',
'Charset': 'UTF-8'
}
}
},
ReplyToAddresses=[
'YOUR@EMAIL.ADDRESS',
]
)
実行する
実行すると、以下のようにメールが送信されます。
Tips
HTMLメールとテキストメール
Message['Body']['Text']
はMessage['Body']['Html']
がある場合かつHTMLメールが見れるクライアントでは表示されない様子です。
アドレスについて
Source
に入れるアドレスは、自身のSESアカウントで認証済のものを使ってください。
権限について
実行するために必要な権限はses:SendEmail
です。
以下のようなロールを作って、LambdaなりIAMユーザーに割り当てておきましょう。
{
"Version": "2012-10-17",
"Statement": [{
"Action": [
"ses:SendEmail"
],
"Resource": [
"arn:aws:ses:*"
],
"Effect": "Allow"
}]
}
その他
バウンスの処理などもできる様子なので、興味がある方は以下をご覧ください。
http://boto3.readthedocs.io/en/latest/reference/services/ses.html#SES.Client.send_email