簡體   English   中英

Rails 4 在“測試”環境中發送電子郵件

[英]Rails 4 sending emails in the "Test" environment

每次我運行測試時,實際上都會發送電子郵件。 我的config/environments/test.rb有這個配置

config.action_mailer.delivery_method = :test

所以我認為每當我運行測試時,它們不應該真正發送,但是當我運行命令時

RAILS_ENV="test" rake test

電子郵件以任何一種方式發送。 有那么一刻,我想可能是我沒有使用正確的環境。 但后來我完全刪除了db/test.sqlite3並在我再次運行測試后立即刪除。 文件又恢復了,證明我其實是在test環境下運行的。

到底是怎么回事? 為什么我的測試會發送真實郵件? 這與我在我的應用程序上使用deliver_now有什么關系嗎?

您至少應該能夠通過放置來禁用它們

config.action_mailer.perform_deliveries = false

在你的環境/test.rb 中,正如布倫特沙利文他的回答中所建議的那樣。

config/environment.rb有一行ActionMailer::Base.delivery_method = :smtp會覆蓋config/environments/test.rb ActionMailer::Base.delivery_method = :test

config/environment.rb刪除該行ActionMailer::Base.delivery_method = :smtp'並將其放在config/environments/production.rb 這允許您將ActionMailer::Base.delivery_method = :test放在config/environments/test.rb ,並將您想要的版本放在config/environments/development.rb

這是針對 Rails 6 的,但我認為它可能會幫助遇到此問題的人。

確保將以下內容放入您的 config/environments/test.rb 文件中:

  config.action_mailer.delivery_method = :test
  config.active_job.queue_adapter = :test

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM