私のRuby on Railsアクションメーラーは、開発環境ではすべて正常に動作しますが、本番環境ではスローし続けます。
ActionView::Template::Error: Missing Host to link to! Please provide the :Host parameter, set default_url_options[:Host], or set :only_path to true
私の開発構成は
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:port => xxx,
:address => 'smtp.example.org',
:user_name => '[email protected]',
:password => 'xxxxxxxx',
:domain => 'xxxxxx.com',
:authentication => :plain,
}
config.action_mailer.default_url_options = { :Host => 'localhost:3000' }
私の生産構成は
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:port => 587,
:address => 'smtp.example.org',
:user_name => '[email protected]',
:password => 'xxxxxx',
:domain => 'example.com',
:authentication => :plain,
}
config.action_mailer.default_url_options = { :Host => 'example.com' }
私の他の環境は:
Ruby 2.1.1
Rails 4.0.3
sidekiq
devise
devise-async
私が試してみました:
初期化ファイルに以下を追加します
ActionMailer::Base.default_url_options[:Host] = "example.com"
この答え ここ
どちらも機能しません。
最後に、各環境ファイルに正しい値で以下を追加しました。
test.rb/development.rb/production.rb
Devise 3.2.x-4.x.x
Rails 4.1.x&&Rails 4.2.x&&Rails 5.xx
おかげで maudulus
# Default Mailer Host
Rails.application.routes.default_url_options[:Host] = 'domain.com'
サーバーを再起動してみてください。 Rails 4.1)でも、再起動しないと構成は再解析されません。