📧
Amazon SES で AWSCLI の ses と sesv2 の違い
Amazon SES の API には Amazon SES API (v1) と Amazon SES API v2 が存在する。
どちらも同じリソースを扱うもので API のバージョンが異なる。
awscli にもそれぞれのコマンドが用意されている。
その違いを少し確認したため書き残す。
単発のメール送信
ses (v1)
$ aws ses send-email --from no-reply@turubee.com --to hoge@turubee.com --subject 'ses test mail' --text 'test'
sesv2
$ aws sesv2 send-email --from-email-address no-reply@turubee.com --destination ToAddresses=hoge@turubee.com --content '{"Simple":{"Subject":{"Data":"ses test mail"},"Body":{"Text":{"Data":"test"}}}}'
バルクメール送信
v1 は試していない。
sesv2
$ aws sesv2 create-email-template --template-name batch-template --template-content '{"Subject": "test:{{count}}", "Text": "count:{{count}} total:{{total}}"}'
$ cat <<EOF >send-bulk-email-input.json
{
"FromEmailAddress": "no-reply@turubee.com",
"DefaultContent": {
"Template": {
"TemplateName": "batch-template",
"TemplateArn": "arn:aws:ses:ap-northeast-1:123456789012:template/batch-template",
"TemplateData": "{\"count\":\"n\",\"total\":\"2\"}"
}
},
"BulkEmailEntries": [
{
"Destination": {
"ToAddresses": [
"hoge@turubee.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{\"count\":\"1\"}"
}
}
},
{
"Destination": {
"ToAddresses": [
"hoge@turubee.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{\"count\":\"2\"}"
}
}
}
]
}
EOF
$ aws sesv2 send-bulk-email --cli-input-json file://send-bulk-email-input.json
送信クォータの取得
ses (v1)
$ aws ses get-send-quota
{
"Max24HourSend": 200.0,
"MaxSendRate": 1.0,
"SentLast24Hours": 0.0
}
ses (v2)
$ aws sesv2 get-account
{
"DedicatedIpAutoWarmupEnabled": true,
"EnforcementStatus": "HEALTHY",
"ProductionAccessEnabled": false,
"SendQuota": {
"Max24HourSend": 200.0,
"MaxSendRate": 1.0,
"SentLast24Hours": 0.0
},
"SendingEnabled": true,
"SuppressionAttributes": {
"SuppressedReasons": [
"BOUNCE",
"COMPLAINT"
]
}
}
送信統計情報取得
15 分毎の統計を順序不定で出力する。これは v2 には見つからなかった。
ses (v1)
$ aws ses get-send-statistics
{
"SendDataPoints": [
{
"Timestamp": "2023-01-21T08:45:00+00:00",
"DeliveryAttempts": 1,
"Bounces": 0,
"Complaints": 0,
"Rejects": 0
},
{
"Timestamp": "2023-01-21T09:00:00+00:00",
"DeliveryAttempts": 1,
"Bounces": 0,
"Complaints": 0,
"Rejects": 0
}
]
}
備忘
新しいバージョンの v2 のみを使えば良いというわけではなく、v1 で使える API も覚えておくと良い。
Discussion