SESで承認したドメインのサブドメインを送信元アドレスとしてメールを送信してみる

2020.09.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、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"
}

サブドメインが送信元のメールが届きました。 image.png

結論として、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で承認しておけば、環境や用途ごとに異なるサブドメインをメール送信に使えるのは便利ですね。

参考

以上