[英]What is the difference between config.action_mailer.smtp_settings and ActionMailer::Base.smtp_settings in Rails?
[英]Change the ActionMailer SMTP settings on action mailer rails 5
我想在ActionMailer类上更改我的ActionMailer SMTP设置,但是我无法更改它,这是我尝试过的方法。
class MyMailer < ActionMailer::Base
def sample
deliver_with(:mailgun)
end
def deliver_with(server = :transactional)
Rails.application.config.action_mailer.smtp_settings = Rails.application.secrets[:smtp][server]
ActionMailer::Base.smtp_settings = Rails.application.secrets[:smtp][server]
end
这是如何完成的:
class ApplicationMailer < ActionMailer::Base
layout 'mailer'
after_action :config_smtp
def sample
deliver_with(:mailgun)
end
private
def config_smtp
mail.delivery_method.settings.merge! @smtp_settings if @smtp_settings
end
def deliver_with(server = :transactional)
server = server.to_s
unless Rails.application.secrets[:smtp].keys.include? server
server = "mandrill"
end
@smtp_settings = Rails.application.secrets[:smtp][server]
end
而关于您的秘密:
smtp:
mandrill:
:address: 'smtp.mandrillapp.com'
:port: 587
:user_name: '123'
:password: ''
:authentication: 'plain'
:enable_starttls_auto: true
mailgun:
:address: 'smtp.mailgun.org'
:port: 587
:user_name: '123@em.123.com'
:password: ''
:authentication: 'plain'
:enable_starttls_auto: true
我认为您需要在环境文件(development.rb,production.rb,test.rb)中而不是在类定义中更改这些设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.