1
0
Fork 0
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:
Andrew Kampjes 2014-10-25 23:14:05 +13:00
parent e50fe85180
commit f0a3af209f
4 changed files with 23 additions and 0 deletions

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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