Module: Mail::Jenc::AddressFieldPatch

Defined in:
lib/mail/jenc/fields/address_field_patch.rb

Instance Method Summary collapse

Instance Method Details

#initialize(value, charset = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/mail/jenc/fields/address_field_patch.rb', line 4

def initialize(value, charset = nil)
  if Jenc.enabled?
    if value.is_a?(String) && !value.ascii_only? && value.encoding == Encoding::UTF_8 && charset && charset.downcase != 'utf-8'
      list = Mail::AddressList.new(value)
      list.addresses.each do |addr|
        if addr.display_name && !addr.display_name.ascii_only?
          addr.display_name = Mail::Encodings.b_value_encode(
            Mail::Encodings.transcode_charset(addr.display_name, addr.display_name.encoding, charset)
          )
        end
      end
      value = list.addresses.map(&:encoded).join(', ')
    end
  end
  super
end