No ambiente de teste, não se inunda a caixa de entrada do usuário com e-mails de teste inúteis. Uma boa opção é redirecionar todos os emails enviados durante o teste para um endereço de email específico.
Com base nessas duas abordagens: DHH e Thoughtbot . E usando o gem receiver_interceptor .
Primeiro adicione recipient_interceptor
ao Gemfile .
Exemplo de um arquivo de configuração de produção :
Appname::Application.configure do
config.action_mailer.default_url_options={host:'www.mypharmacash.com'}
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 25, # ports 587 and 2525 are also supported with STARTTLS
:enable_starttls_auto => true, # detects and uses STARTTLS
:user_name => ENV['MANDRILL_USERNAME'],
:password => ENV['MANDRILL_PASSWORD'], # SMTP password is any valid API key
:authentication => 'login', # Mandrill supports 'plain' or 'login'
:domain => 'www.domainname.com', # your domain to identify your server when connecting
}
end
E este seria o arquivo de configuração de teste :
# Based on production defaults
require Rails.root.join("config/environments/production")
Mail.register_interceptor RecipientInterceptor.new(
ENV['STAGING_EMAIL_RECIPIENTS'],
subject_prefix: '[STAGING]'
)