SESで承認したドメインのサブドメインを送信元アドレスとしてメールを送信してみる
こんにちは、CX事業本部の若槻です。
以前投稿した次の記事でAmazon SESで承認したドメインを送信元としてメールを送信できるようにしました。
今回は、上記対応をしたドメインのサブドメインからメールが送信できるのかAWS CLIで確認してみました。
確認してみた
まず、確認に使用する「SESで承認されたドメイン名」と「送信先メールアドレス」を指定します。
% verifiedDomain=<SESで承認されたドメイン名> % toAddress=<送信先メールアドレス>
次に、ses get-identity-verification-attributes
コマンドにより、ドメインがSES上で承認されていることを念のため確認します。
% aws ses get-identity-verification-attributes \ --identities ${verifiedDomain} { "VerificationAttributes": { "<SESで承認されたドメイン名>": { "VerificationStatus": "Success", "VerificationToken": "XXXXXXXXXXXXXXX=" } } }
実行結果で"VerificationStatus": "Success"
とあるため、ドメインはきちんと承認されていることを確認できました。
それでは、ses send-email
コマンドにより、サブドメインtest@sub.<SESで承認されたドメイン名>
を送信元アドレスとしてSESからメールを送信してみます。
% aws ses send-email \ --from test@sub.${verifiedDomain} \ --to ${toAddress} \ --subject subject \ --text body { "MessageId": "xxxxxxxxxxxxxxx-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx-xxxxxxx" }
サブドメインが送信元のメールが届きました。
結論として、SESで承認したドメインのサブドメインを送信元としてメールを送信することができました。
エラーとなったパターン
ses send-email
コマンドによるメール送信で次のようなパターンではエラーとなりました。
--text
を空文字列としたら、値はnullできないためエラーとなりました。また--text
オプションを付けない場合も同じエラーとなりました。何かしらbodyを指定する必要があるようです。
% aws ses send-email \ --from test@sub.${verifiedDomain} \ --to ${toAddress} \ --subject subject \ --text '' An error occurred (ValidationError) when calling the SendEmail operation: 1 validation error detected: Value null at 'message.body' failed to satisfy constraint: Member must not be null
- 当然ですが、SESで未承認のドメインのアドレスを送信元とした場合もエラーとなりました。
% aws ses send-email \ --from test@example.com \ --to ${toAddress} \ --subject subject \ --text body An error occurred (MessageRejected) when calling the SendEmail operation: Email address is not verified. The following identities failed the check in region AP-NORTHEAST-1: test@example.com
おわりに
SESで承認したドメインのサブドメインを送信元アドレスとしてメールを送信してみました。
上位ドメインを一つSESで承認しておけば、環境や用途ごとに異なるサブドメインをメール送信に使えるのは便利ですね。
参考
- send-email | aws . ses
- get-identity-verification-attributes | aws . ses
- AWS CLIを利用してAmazon SESの設定をやってみた – メール送信編 | Developers.IO
- ドメインのRoute 53での取得、SESでの承認、SESでのメール送信上限の緩和およびSandbox制限の解除をしてみた | Developers.IO
以上