mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
ActionMailer https on URL with force_ssl = true
`config.force_ssl = true` will set config.action_mailer.default_url_options = { protocol: 'https' } If you have turned on force_ssl, and then gone to the effort of setting config.action_mailer.default_url_options = {host: 'example.com'} then you are probably pointing people back to your current app and want https on that too.
This commit is contained in:
parent
e50fe85180
commit
f0a3af209f
4 changed files with 23 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
* `config.force_ssl = true` will set
|
||||
`config.action_mailer.default_url_options = { protocol: 'https' }`
|
||||
|
||||
*Andrew Kampjes*
|
||||
|
||||
* Add `config.action_mailer.deliver_later_queue_name` configuration to set the
|
||||
mailer queue name.
|
||||
|
||||
|
|
|
@ -132,6 +132,8 @@ module ActionMailer
|
|||
#
|
||||
# config.action_mailer.default_url_options = { host: "example.com" }
|
||||
#
|
||||
# By default when <tt>config.force_ssl</tt> is true, URLs generated for hosts will use the HTTPS protocol.
|
||||
#
|
||||
# = Sending mail
|
||||
#
|
||||
# Once a mailer action and template are defined, you can deliver your message or defer its creation and
|
||||
|
|
|
@ -16,6 +16,11 @@ module ActionMailer
|
|||
paths = app.config.paths
|
||||
options = app.config.action_mailer
|
||||
|
||||
if app.config.force_ssl
|
||||
options.default_url_options ||= {}
|
||||
options.default_url_options[:protocol] ||= 'https'
|
||||
end
|
||||
|
||||
options.assets_dir ||= paths["public"].first
|
||||
options.javascripts_dir ||= paths["public/javascripts"].first
|
||||
options.stylesheets_dir ||= paths["public/stylesheets"].first
|
||||
|
|
|
@ -50,6 +50,17 @@ module ApplicationTests
|
|||
assert_equal "test.rails", ActionMailer::Base.default_url_options[:host]
|
||||
end
|
||||
|
||||
test "Default to HTTPS for ActionMailer URLs when force_ssl is on" do
|
||||
app_file "config/environments/development.rb", <<-RUBY
|
||||
Rails.application.configure do
|
||||
config.force_ssl = true
|
||||
end
|
||||
RUBY
|
||||
|
||||
require "#{app_path}/config/environment"
|
||||
assert_equal "https", ActionMailer::Base.default_url_options[:protocol]
|
||||
end
|
||||
|
||||
test "includes url helpers as action methods" do
|
||||
app_file "config/routes.rb", <<-RUBY
|
||||
Rails.application.routes.draw do
|
||||
|
|
Loading…
Reference in a new issue