1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# encoding: utf-8
# frozen_string_literal: true
#
#
#
module Mail
class ContentIdField < StructuredField
FIELD_NAME = 'content-id'
CAPITALIZED_FIELD = "Content-ID"
def initialize(value = nil, charset = 'utf-8')
self.charset = charset
@uniq = 1
if Utilities.blank?(value)
value = generate_content_id
else
value = strip_field(FIELD_NAME, value)
end
super(CAPITALIZED_FIELD, strip_field(FIELD_NAME, value), charset)
self.parse
self
end
def parse(val = value)
unless Utilities.blank?(val)
@element = Mail::MessageIdsElement.new(val)
end
end
def element
@element ||= Mail::MessageIdsElement.new(value)
end
def name
'Content-ID'
end
def content_id
element.message_id
end
def to_s
"<#{content_id}>"
end
# TODO: Fix this up
def encoded
"#{CAPITALIZED_FIELD}: #{to_s}\r\n"
end
def decoded
"#{to_s}"
end
private
def generate_content_id
"<#{Mail.random_tag}@#{::Socket.gethostname}.mail>"
end
end
end
|