Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails中的config.action\u mailer.smtp\u设置和ActionMailer::Base.smtp\u设置之间有什么区别?_Ruby On Rails_Actionmailer - Fatal编程技术网

Ruby on rails Rails中的config.action\u mailer.smtp\u设置和ActionMailer::Base.smtp\u设置之间有什么区别?

Ruby on rails Rails中的config.action\u mailer.smtp\u设置和ActionMailer::Base.smtp\u设置之间有什么区别?,ruby-on-rails,actionmailer,Ruby On Rails,Actionmailer,我在RoR应用程序中设置了与Exchange兼容的邮件服务器。我在development.rb中使用了以下设置: config.action_mailer.smtp_settings = { :address => 'mail.server.com', :port => 5870, :user_name => 'username', :password =&g

我在RoR应用程序中设置了与Exchange兼容的邮件服务器。我在
development.rb中使用了以下设置:

config.action_mailer.smtp_settings = {
  :address              => 'mail.server.com',
  :port                 => 5870,
  :user_name            => 'username',
  :password             => 'password',
  :authentication       => :login
}
此设置不起作用,我得到
Net::SMTPAuthenticationError:504无法识别的身份验证类型。

但是,如果我在
environment.rb
中应用完全相同的配置,它将完美工作:

ActionMailer::Base.smtp_settings = {
  :address              => 'mail.server.com',
  :port                 => 5870,
  :user_name            => 'username',
  :password             => 'password',
  :authentication       => :login  
}
为什么会这样?
config.action\u mailer.smtp\u settings
不应该设置相同的设置吗?这是虫子吗?有原因吗


我用Gmail as试过了,它能正常工作,所以smtp\u设置对邮件程序有影响,但在我看来并不是所有选项都有效。

config.action\u-mailer.smtp\u-settings
将设置转发到
ActionMailer::Base.smtp\u-settings

然而,主要区别在于前者是环境特定的设置,而第二个是全局设置


换句话说,您应该确保在适当的环境文件中设置
config.action\u mailer.smtp\u设置以应用这些设置。例如,如果要在生产中使用设置,请在
config/environments/production.rb
文件中添加分配。同样,如果您希望将设置应用于整个项目,请在
config/application.rb

中进行设置。我遇到了类似的问题,config.action\u mailer.smtp\u设置不起作用,但每个配置都是正确的

最后我发现,Rails扩展覆盖了初始化阶段的ActionMailer::Base设置。。。
因此,调查您的所有代码和所有第三方代码(!)、扩展、模块等。应该存在问题

我在
development.rb
中设置了开发模式的配置,但它没有转发设置。这两者似乎不一样——这就是我的问题所在。你的意思是这是一个bug?什么扩展覆盖了它?我也有类似的问题。