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
|
# encoding: utf-8
# frozen_string_literal: true
module Mail
class EnvelopeFromElement
include Mail::Utilities
def initialize( string )
@envelope_from = Mail::Parsers::EnvelopeFromParser.new.parse(string)
@address = @envelope_from.address
@date_time = ::DateTime.parse(@envelope_from.ctime_date)
end
def date_time
@date_time
end
def address
@address
end
# RFC 4155:
# a timestamp indicating the UTC date and time when the message
# was originally received, conformant with the syntax of the
# traditional UNIX 'ctime' output sans timezone (note that the
# use of UTC precludes the need for a timezone indicator);
def formatted_date_time
if @date_time.respond_to?(:ctime)
@date_time.ctime
else
@date_time.strftime '%a %b %e %T %Y'
end
end
def to_s
"#{@address} #{formatted_date_time}"
end
end
end
|