Los usuarios recién registrados en mi pequeña aplicación deben ser aprobados por el administrador (me) antes de que puedan obtener acceso al sitio. Logré generar esos correos electrónicos en desarrollo con un after_create :send_admin_email
en mi modelo de usuario, que funciona muy bien. Mi problema es que estoy generando múltiples usuarios durante mis pruebas (usando FactoryGirl) y cada usuario de prueba creado envía un correo electrónico real. Ejecutar mis pruebas es como verter melaza en enero y tengo que eliminar cientos de correos electrónicos enviados a mi bandeja de entrada. ¿Cómo apago eso?ActionMailer enviando mensajes de correo electrónico reales en modo de prueba. - ¿Cómo apagarlo?
Action Mailer Basics en el Rails Guides me dice que "de forma predeterminada, Action Mailer no envía mensajes de correo electrónico en el entorno de prueba. Se acaban de agregar a la matriz ActionMailer :: Base.deliveries".
Por otra parte, en config/environments/test.rb
Tengo:
config.action_mailer.delivery_method = :test
Eso es, además de tener en config/environment.rb
:
# Configuration for using SendGrid on Heroku
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => 'app[my app number]@heroku.com',
:password => '[something super secret]',
:domain => '[let's get this party started!.com]',
:enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp
Estoy seguro de que me falta algo simple y básico. He buscado y preguntas y publicaciones relacionadas sobre cómo probar que ActionMailer realmente envió correos electrónicos.
humilde gratitud de antemano por cualquier idea o ayuda.
Addendum: Siguiendo la respuesta a una pregunta similar encontrada en Is it possible to turn off ActionMailer emails when cucumber testing is happening on development? Pude dejar de enviar correos electrónicos de locura. Aún así, tuve que agregar ActionMailer::Base.delivery_method = :test
a varios archivos rspec. ¿Hay alguna manera de poder cerrar esto globalmente? Alguien tiene alguna idea sobre lo que está pasando?
Con todos esos correos electrónicos, excedí mi 200/día permitido por Enviar cuadrícula. He encontrado [Cómo escribir características que en realidad no usan Sendgrid?] (Https://groups.google.com/group/heroku/browse_thread/thread/7a4044f299ccf1fc/a0d687041fd97389?pli=1) que dice que 'ActionMailer :: Base.delivery_method =: smtp 'en' config/environment.rb' está anulando 'config.action_mailer.delivery_method =: test' en' config/environments/test.rb' He movido 'ActionMailer :: Base.delivery_method =: smtp 'en 'config/environments/development.rb' y' config/environments/production.rb' que pueden funcionar. Actualizaré mañana. – BenU