19

a veces, cuando estoy en desarrollo, no tengo conexión a Internet. Esto se traduce en un error siempre que sea mi aplicación debe enviar un correo electrónico:Cómo deshabilitar ActionMailer en desarrollo?

getaddrinfo: nodename nor servname provided, or not known 

¿Hay una manera simple y rápida donde puedo cambiar un valor de configuración para hacer ActionMailer simplemente no tratar de enviar realmente a cabo un correo electrónico y no lanzar un error? Tal vez algo que alcance el entorno de desarrollo. ¿O de alguna otra forma puedo evitar que se produzca el error y que mi código pase donde quiera que llame al actionmailer?

estoy usando Rails 3.1

Respuesta

47

Es práctica común dejar rieles ignoran los errores de correo. En el archivo de config/environments/development.rb añada, elimine o modifique:

# Don't care if the mailer can't send 
config.action_mailer.raise_delivery_errors = false 

También puede establecer lo siguiente:

config.action_mailer.perform_deliveries = false 

Consulte la documentación aquí http://edgeguides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration

También puede establecer el método de entrega a: prueba, pero en realidad no lo he intentado

config.action_mailer.delivery_method = :test 
+1

¡funciona a la perfección! – alik

10

If desea deshabilitar las entregas de correo después de que su aplicación de rieles se haya inicializado (al crear datos de muestra, durante las migraciones, etc.):

ActionMailer::Base.perform_deliveries = false 
Cuestiones relacionadas