From 575da9e928517bf0140e8bca83e6e2cc79d421d6 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Wed, 17 Apr 2019 15:58:47 +0300 Subject: [PATCH] Add custom `From` header for "force delete" email Closes #1164 --- app/mailers/domain_delete_mailer.rb | 7 ++++++- config/application-example.yml | 2 ++ test/mailers/domain_delete_mailer_test.rb | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/mailers/domain_delete_mailer.rb b/app/mailers/domain_delete_mailer.rb index 8c63de39e..eaac1a5af 100644 --- a/app/mailers/domain_delete_mailer.rb +++ b/app/mailers/domain_delete_mailer.rb @@ -41,7 +41,8 @@ class DomainDeleteMailer < ApplicationMailer @redemption_grace_period = Setting.redemption_grace_period subject = default_i18n_subject(domain_name: domain.name) - mail(to: domain.primary_contact_emails, + mail(from: forced_email_from, + to: domain.primary_contact_emails, subject: subject, template_path: 'mailers/domain_delete_mailer/forced', template_name: template_name) @@ -52,4 +53,8 @@ class DomainDeleteMailer < ApplicationMailer def confirmation_url(domain) registrant_domain_delete_confirm_url(domain, token: domain.registrant_verification_token) end + + def forced_email_from + ENV['action_mailer_force_delete_from'] || self.class.default[:from] + end end diff --git a/config/application-example.yml b/config/application-example.yml index b19d65bdb..0d4417e3c 100644 --- a/config/application-example.yml +++ b/config/application-example.yml @@ -146,6 +146,7 @@ action_mailer_default_protocol: # default: http action_mailer_default_host: action_mailer_default_port: # default: no port (80) action_mailer_default_from: # no-reply@example.com +action_mailer_force_delete_from: # `From` header for `DomainDeleteMailer#forced` email # Since the keys for staging are absent from the repo, we need to supply them separate for testing. test: @@ -155,6 +156,7 @@ test: auction_api_allowed_ips: '' action_mailer_default_host: 'registry.test' action_mailer_default_from: 'no-reply@registry.test' + action_mailer_force_delete_from: 'legal@registry.test' # Airbrake // Errbit: airbrake_host: "https://your-errbit-host.ee" diff --git a/test/mailers/domain_delete_mailer_test.rb b/test/mailers/domain_delete_mailer_test.rb index 1fce80042..230b3bc7e 100644 --- a/test/mailers/domain_delete_mailer_test.rb +++ b/test/mailers/domain_delete_mailer_test.rb @@ -66,6 +66,7 @@ class DomainDeleteMailerTest < ActiveSupport::TestCase assert_equal 'shop.test', @domain.name assert_equal 'john@inbox.test', @domain.registrant.email assert_equal 'jane@mail.test', @domain.admin_contacts.first.email + assert_equal 'legal@registry.test', ENV['action_mailer_force_delete_from'] email = DomainDeleteMailer.forced(domain: @domain, registrar: @domain.registrar, @@ -74,6 +75,7 @@ class DomainDeleteMailerTest < ActiveSupport::TestCase .first).deliver_now assert_emails 1 + assert_equal ['legal@registry.test'], email.from assert_equal %w[jane@mail.test john@inbox.test], email.to assert_equal 'Domeen shop.test on kustutusmenetluses' \ ' / Domain shop.test is in deletion process' \