質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

解決済

Amazon SESでメール送信した際のエラー

deango
deango

総合スコア152

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1回答

0評価

0クリップ

197閲覧

投稿2022/07/30 05:33

編集2022/08/01 01:15

前提

djangoでSNSアプリを作成しています。
EC2にデプロイして動作確認してまして、
SESを利用してメールアドレスの認証を行っています。
アカウントログイン動作を行った際に、エラーになります。

・アカウントログイン
以下のページでログインボタンを押下

<form method="post" action="{% url 'account_login' %}"> {% csrf_token %} <table class="table"> {{ form.as_table }} {% if redirect_field_value %} <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}"/> {% endif %} </table> <button class="btn btn-primary" type="submit">ログイン</button> <p><a class="button secondaryAction" href="{% url 'account_reset_password' %}">パスワードを忘れましたか?</a></p> </form>

発生している問題・エラーメッセージ

EC2インスタンスと同じ、us-west-2のリージョンで、SESにメールアドレスや独自ドメインを登録・検証したのですが、
us-east-1でメールアドレスが検証されてないとのエラーが出ています。

An error occurred (MessageRejected) when calling the SendRawEmail operation: Email address is not verified. The following identities failed the check in region US-EAST-1: [Toメールアドレス]

試したこと

以下は対応済みです。

① SESでIAMユーザを作成し、アクセスID、認証キーをダウンロードし、django側で設定
以下はdjango側で設定しているコードです。
EC2の環境設定(~/.bash_profile)を読み込んでいます。

AWS_SES_ACCESS_KEY_ID = os.environ.get('AWS_SES_ACCESS_KEY_ID') AWS_SES_SECRET_ACCESS_KEY = os.environ.get('AWS_SES_SECRET_ACCESS_KEY') 

② ①で作成したIAMユーザのポリシー(AmazonSesSendingAccess)の編集
デフォルトの設定はActionがses:SendRawEmailのみでしたので、
ses:SendEmail、ses:GetSendQuotaを追加しました。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ses:SendEmail", "ses:GetSendQuota", "ses:SendRawEmail" ], "Resource": "*" } ] }

③ サンドボックス外への移動、送信制限解除(リージョン:us-west-2)
対応済みで、認証していないメールアドレスにもメール送信可能なはずです。
送信制限は、1 日あたり 50,000 メッセージ、最大送信レートが毎秒 14 メッセージでこちらにも引っかからない認識です。

④送信元アドレスをSESに登録(リージョン:us-west-2)
作成しておいた独自のドメインと、個人のメールアドレスをこちらに登録し、検証完了しています。

※以前に発生したエラー
アカウントログインの動作を行った際、アクセスID・認証キーのエラーが出たため、
上記の①、②を再度行ったところ、エラー内容が今回のものに変わりました。

補足情報(FW/ツールのバージョンなど)

・django 3.2.14
・EC2 t2.micro (リージョン:us-west-2)

お力添えいただけますでしょうか。宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yu_1985

2022/07/30 05:45

どのようにプログラムからメールを送っているのかわからないので該当部分のソースを貼ってみてください。 また、必要な権限はどのように与えてますか。
deango

2022/07/31 07:47

該当コードの追加と本文修正しました。 権限設定は問題なさそうです。
yu_1985

2022/07/31 10:52

当初とメッセージ内容が変わっているのはなぜでしょう。 何かをした結果変わったのならそれがわかるように記載してください。 IAMポリシーだけ貼っても、そのポリシーを使っていることが記載内容だけではわかりません。 そもそも > SESのアクセスID、認証キーを発行し、アプリ側で設定 をしているならこのポリシーはどこで使うんでしょうか? SESを使うための設定をdjango上でどのように行ったかをより詳細に記載してください。 メッセージ内容を見るとfrom,toいずれかまたは両方のメールアドレスがus-east-1で未検証と言われていますが、今回使いたいSESのリージョンと該当のメールアドレスを検証済みにしたリージョンは一致していますか?
deango

2022/07/31 12:52

確認ありがとうございます。本文に詳細追記しました。 また、全てus-west-2のリージョンで設定しているのですが、us-east-1でエラーが出ていること気づきませんでした。ありがとうございます。ほかに原因がないか確認してみます。
deango

2022/07/31 13:05

④送信元アドレスをSESに登録(リージョン:us-west-2) 作成しておいた独自のドメインと、個人のメールアドレスをこちらに登録し、検証完了しています。 →検証成功となっていたのですが、SESに登録していないアドレスにテストメール送信したところ届きませんでした。この辺りも確認します。
deango

2022/07/31 13:10

こちらは届くのが遅いだけかもしれません、、、

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。