5

かなり複雑なアプリに遡及的にテストを適用しようとしています(二度と)。サインアップ時に新しいユーザーにメールを送信するSendgrid機能を組み込みました。結果として、サインアップページをテストしようとすると、example @ example.netにメッセージを送信しようとしますが、次のエラーが発生します。

Net::SMTPFatalError:
550 Cannot receive from specified address <my app's email>: Unauthenticated senders not allowed

しかし、これが私がテストを行っている方法の問題なのか(私が省略しているもの、私は新しいのか)、それとももっと深い問題なのかはわかりません。GmailからSendgridに切り替えてから、オンラインではなくサーバーで使用したときにアプリが送信する必要のあるメールでエラーが発生しました。Sendgridが特にWebアプリベースの電子メールサービスであることにチョークで書いたが、今は設定ファイルで何か間違ったことをしていると推測している。構成を設定する方法は次のとおりです。

initializers / mail.rb

# SendGrid Settings
ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => ENV['SENDGRID_USERNAME'],
  :password       => ENV['SENDGRID_PASSWORD'],
  :domain         => 'heroku.com'
}
ActionMailer::Base.delivery_method = :smtp

私のenvironment.rbファイルには何もありません。この質問は、これらの設定をenvironment.rbファイルに切り替える必要があることを示唆していますが、(そして明らかに、構成ファイルをあまりよく理解していません)、development.rb、testに個別の設定が必要かどうか疑問に思っています.rbなど(また、私はそのスイッチを試しましたが、エラーは変わりませんでした)。また、capybara / rspecがテスト中に電子メール要求を無視する回避策がある場合(または、偽の電子メールアドレスであることに対処し、送信を試みずに電子メールをテストします)。

ありがとう!

4

1 に答える 1