Merge pull request #3684 from consul/dynamic_from_mailer

Evaluate mailer from address at runtime
This commit is contained in:
Javier Martín
2019-09-10 17:08:46 +02:00
committed by GitHub
4 changed files with 20 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
class ApplicationMailer < ActionMailer::Base
helper :settings
helper :application
default from: "#{Setting["mailer_from_name"]} <#{Setting["mailer_from_address"]}>"
default from: Proc.new { "#{Setting["mailer_from_name"]} <#{Setting["mailer_from_address"]}>" }
layout "mailer"
end

View File

@@ -12,11 +12,7 @@ Devise.setup do |config|
# Configure the e-mail address which will be shown in Devise::Mailer,
# note that it will be overwritten if you use your own mailer class
# with default "from" parameter.
if Rails.env.test? || !ActiveRecord::Base.connection.data_source_exists?("settings")
config.mailer_sender = "noreply@consul.dev"
else
config.mailer_sender = "'#{Setting["mailer_from_name"]}' <#{Setting["mailer_from_address"]}>"
end
config.mailer_sender = Proc.new { "'#{Setting["mailer_from_name"]}' <#{Setting["mailer_from_address"]}>" }
# Configure the class responsible to send e-mails.
config.mailer = "DeviseMailer"

View File

@@ -12,5 +12,14 @@ describe DeviseMailer do
expect(email.subject).to include("confirmación")
end
it "reads the from address at runtime" do
Setting["mailer_from_name"] = "New organization"
Setting["mailer_from_address"] = "new@consul.dev"
email = DeviseMailer.confirmation_instructions(create(:user), "ABC")
expect(email).to deliver_from "'New organization' <new@consul.dev>"
end
end
end

View File

@@ -13,5 +13,14 @@ describe Mailer do
expect(email.subject).to include("comentado")
end
it "reads the from address at runtime" do
Setting["mailer_from_name"] = "New organization"
Setting["mailer_from_address"] = "new@consul.dev"
email = Mailer.comment(create(:comment))
expect(email).to deliver_from "New organization <new@consul.dev>"
end
end
end