Amazon Simple Email Service (SES) を使用して E メールを送信したいと考えています。しかし、「SMTP サーバーには安全な接続が必要です」または「クライアントが認証されていません」というエラーが表示されます。サーバーの応答は「認証が必要」でした。
簡単な説明
このエラーは、送信側アプリケーションが Amazon SES SMTP インターフェイスに接続したときに認証を試みなかったことを示しています。通常、このエラーは、AWS Signature Version 4 (SigV4) ではなく AWS Signature Version 2 (SigV2) を使用して SES API コールリクエストに署名した場合に発生します。
注: 2019 年 1 月 10 日より前に SMTP 認証情報を作成した場合、SMTP 認証情報は古いバージョンの AWS SigV2 を使用して作成されています。その日以降に作成された認証情報は、デフォルトで AWS SigV4 を使用します。
解決方法
次の手順に従って、SMTP ユーザーの作成時間を確認します。
- AWS マネジメントコンソールにサインインし、AWS Identity and Access Management (IAM) コンソールを開きます。
- ナビゲーションペインで、[Users] (ユーザー) をクリックしてから、SMTP ユーザー名を選択します。
- 新しいページが読み込まれます。「作成日時」 は [summary] (概要) の下にあります。
SMTP ユーザーの作成日が 2019 年 1 月 10 日より前である場合、リクエストの署名は AWS SigV2 を使用して行われているため、エラーが表示されます。
この問題を解決するには、SES コンソールから新しい SMTP ユーザーを作成し、送信側アプリケーションの古い SMTP ユーザーを置き換えます。既存の AWS 認証情報を変換することで、IAM ユーザーから AWS SigV4 SMTP のユーザー名とパスワードを取得することもできます。
問題が解決しない場合、または SMTP ユーザーの作成日が 2019 年 1 月 10 日以降である場合は、SES サポートのケースを開き、さらに調査してください。