2012-07-04 10 views
8

Configuré un servidor de correo compatible con Exchange en una aplicación RoR. He utilizado la siguiente instalación development.rb:¿Cuál es la diferencia entre config.action_mailer.smtp_settings y ActionMailer :: Base.smtp_settings en Rails?

config.action_mailer.smtp_settings = { 
    :address    => 'mail.server.com', 
    :port     => 5870, 
    :user_name   => 'username', 
    :password    => 'password', 
    :authentication  => :login 
} 

Esta configuración no funciona, me sale Net::SMTPAuthenticationError: 504 Unrecognized authentication type.

Sin embargo si aplico la misma configuración exacta en environment.rb, funciona perfectamente:

ActionMailer::Base.smtp_settings = { 
    :address    => 'mail.server.com', 
    :port     => 5870, 
    :user_name   => 'username', 
    :password    => 'password', 
    :authentication  => :login 
} 

¿Por qué es esto? ¿No debería config.action_mailer.smtp_settings establecer la misma configuración? ¿Es esto un error? ¿Tiene una razón?

he probado con Gmail como told here, y obras, por lo smtp_settings tiene efecto sobre el gestor de correo, pero me parece que no todas las opciones cuentan/trabajo.

Respuesta

4

config.action_mailer.smtp_settings reenvía la configuración a ActionMailer::Base.smtp_settings.

Sin embargo, la diferencia principal es que la primera es una configuración específica del entorno, mientras que la segunda es una configuración global.

En otras palabras, debe asegurarse de establecer config.action_mailer.smtp_settings en el archivo de entorno adecuado para aplicar la configuración. Si desea usar la configuración en producción, por ejemplo, agregue la asignación en el archivo config/environments/production.rb. Del mismo modo, si desea que la configuración se aplique a todo el proyecto, configúrelos en config/application.rb.

+1

Configuré la configuración para el modo de desarrollo en 'development.rb' pero no reenvió las configuraciones. Parece que los dos no son lo mismo, de eso se trata mi pregunta. ¿Quieres decir que esto es un error? – andrasf

2

Tuve un problema similar, config.action_mailer.smtp_settings no funcionó, pero todas las configuraciones eran correctas.

Finalmente me di cuenta de que una extensión de Rails anula la configuración de ActionMailer :: Base en la fase de inicialización ... Investigue todo su código y todos los códigos de terceros (!), Extensiones, módulos, etc. debería ser el problema!

+0

¿Qué extensión fue sobrescrita? Estoy teniendo un problema similar. – Andrew

Cuestiones relacionadas