如何在测试环境中关闭ActionMailer?

时间:2015-07-17 12:16:20

标签: ruby-on-rails rspec actionmailer

当我使用RSpec运行测试时,我收到了真正的电子邮件。 我已经完成了this question中编写的所有内容(我添加了更改我的环境配置以不发送电子邮件,但它根本没有任何效果。我认为我的设置在某处被替换但是我无法找到。

以下是我的测试环境配置( config / enviroments / test.rb

DataContext

这是我的邮件程序

Myapp::Application.configure do
  config.action_mailer.delivery_method = :test
  config.action_mailer.perform_deliveries = false
end

似乎我错过了一些非常明显的东西。但是我需要你的帮助来分解它。

1 个答案:

答案 0 :(得分:1)

由于您使用Mandrill::API发送电子邮件而非ActionMailer,因此您对ActionMailer的设置绝对没有影响。

您应该在Mandrill::API中找到相应的设置,或者存根测试的发送方法。

我实际上建议你仍然使用ActionMailer与Mandrill SMTP服务器:

config.action_mailer.smtp_settings = {
  address: 'smtp.mandrillapp.com',
  port: 587,
  domain: Rails.application.config_for(:global)['domain'],
  authentication: 'plain',
  enable_starttls_auto: true,
  user_name: Rails.application.secrets.email_provider_username,
  password: Rails.application.secrets.email_provider_apikey
}