Class: MailSafe::AddressReplacer

Inherits:
Object
  • Object
show all
Defined in:
lib/mail_safe/address_replacer.rb

Constant Summary collapse

ADDRESS_TYPES =
[:to, :cc, :bcc].freeze

Class Method Summary collapse

Class Method Details

.replace_external_addresses(mail) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mail_safe/address_replacer.rb', line 6

def replace_external_addresses(mail)
  replaced_addresses = {}

  ADDRESS_TYPES.each do |address_type|
    if addresses = mail[address_type].try(:value)
      new_addresses = []

      Array(addresses).each do |a|
        new_addresses << if MailSafe::Config.is_internal_address?(a)
                           a
                         else
                           (replaced_addresses[address_type] ||= []) << a
                           MailSafe::Config.get_replacement_address(a)
                         end
      end
      mail.send("#{address_type}=", new_addresses.uniq)
    end
  end

  self.add_body_postscript(mail, replaced_addresses)
end