3

ユーザーが登録されたときに、Amazon AWS SES を使用して共通の確認メールを送信しています。電子メールとドメインを確認しましたが、Rails からメッセージが送信されません。

aws-ses gem をインストールしましたが、Rails コンソールからいくつか試したので動作します。しかし、自動的に送信する必要がある場合は、次のようになります。

I, [2013-11-13T12:36:21.953813 #3262]  INFO -- : Completed 500 Internal Server Error in 1623ms
F, [2013-11-13T12:36:21.958860 #3262] FATAL -- : 
AWS::SES::ResponseError (MessageRejected - Email address is not verified.):

私の amazon_ses.rb は次のようになります。

ActionMailer::Base.add_delivery_method :ses, AWS::SES::Base,
  access_key_id: 'ACCESS_KEY_ID',
  secret_access_key: 'SECRET_ACCESS_KEY'

そして私の production.rb:

config.action_mailer.default_url_options = { :host => 'ismuser.com' }
config.action_mailer.delivery_method = :ses

問題は、ソース電子メール (SES で検証された電子メール) を定義していないことだと推測していますが、どこで定義すればよいかわかりません。

ヘルプ?

4

5 に答える 5

1

何がうまくいかなかったのかわからない。もう 1 つの方法は、smtp 配信方法を使用することです。

AWS パネルで、[Create My SMTP credentials] のボタンをクリックします。</p>

作成したユーザー名とパスワードを記録します

これを development および production.rb ファイルに追加します。

config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
  :address => "email-smtp.us-east-1.amazonaws.com",
  :user_name => "..." # Your SMTP user here.
  :password => "...", # Your SMTP password here.
  :authentication => :login,
  :enable_starttls_auto => true

}

于 2013-12-05T23:25:48.623 に答える
1

Amazon自身からのいくつかのヒントを次に示します。

おめでとう!

Amazon Simple Email Service (Amazon SES) で E メールアドレスが正常に検証されました。これで、このアドレスから電子メールの送信を開始できます。

Amazon SES の新規ユーザーであり、Amazon SES への本番アクセスをまだ取得していない場合は、以前に確認したアドレスにのみ E メール送信できます。確認済みの E メールアドレスのリストを表示するには、Amazon SES コンソールにアクセスするか、 Amazon SES 開発者ガイドを参照してください。

本番アクセスがすでに承認されている場合は、任意のアドレスに電子メールを送信できます。

検証成功 @ Amazon Simple Email Service (SES) | AWS

Amazon SES アカウントには、リージョン EU (アイルランド) で「サンドボックス」アクセスがあります。 サンドボックス アクセスでは、Amazon SES メールボックス シミュレーターと、確認済みの E メール アドレスまたはドメインにのみ E メールを送信できます。サンドボックスから移動するには、送信制限の引き上げをリクエストしてください。 詳細をご覧ください

送信統計 @ SES 管理コンソール

どうやらメールの確認だけでは不十分なようです。実世界にメールを送信できるようにするには、本番アクセスをリクエストする必要があります。

本番アクセスリクエストを送信すると、次のようなメッセージが表示されます。

こんにちは、

おめでとう!お客様のケースを検討した結果、AWS リージョン EU (アイルランド) での送信クォータを 1 日あたり 50,000 メッセージに、最大送信レートを 1 秒あたり 14 メッセージに引き上げました。アカウントもサンドボックスから移動したため、受信者アドレスを確認する必要はありません。

すべての官僚的な質問を選択Yesしたことを確認してください。そうしないと、サポート エンジニアがリクエストを拒否する可能性があります。どうやらこれは免責事項/ライセンス契約のように機能します。Yes/No

于 2015-11-17T12:11:59.063 に答える
0

これは、地域がアプリおよび SES と同じように登録されていない場合に発生する可能性があります。AWS SES ダッシュボード/コンソールの右上隅を見ると、リージョン名が表示されます。次に、このコードを使用して比較します。

ses = AWS::SES::Base.new(access_key_id: ENV['AWS_KEY'],secret_access_key: ENV['AWS_SECRET'])

Rails コンソールで新しい接続を作成するには。次のような出力が吐き出されます。

=> #<AWS::SES::Base:0x00000110d37618
 @access_key_id="<access_key_value>",
 @http=#<Net::HTTP email.us-west-2.amazonaws.com:443 open=false>,
 @path="/",
 @port=443,
 @proxy_server=nil,
 @secret_access_key="<secret_key_value>",
 @server="email.us-west-2.amazonaws.com",
 @settings={},
 @use_ssl=true,
 @user_agent="github-aws-ses-ruby-gem">

地域が一致しない場合は、具体的に次のように設定します。

ses = AWS::SES::Base.new(
   access_key_id: ENV['AWS_KEY'],
   secret_access_key: ENV['AWS_SECRET'], 
   server: 'email.us-west-2.amazonaws.com'
   )
于 2014-04-13T00:01:13.750 に答える