Module: MailParser::RFC2822

Included in:
MailParser
Defined in:
lib/mailparser/rfc2822.rb,
lib/mailparser/rfc2822/parser.rb

Defined Under Namespace

Classes: AddrSpec, DateTime, Group, Mailbox, MsgId, MsgIdList, Parser, Received, ReturnPath, Scanner

Constant Summary collapse

HEADER_TYPE =
{
  "date"              => :DATE_TIME,
  "from"              => :MAILBOX_LIST,
  "sender"            => :MAILBOX,
  "reply-to"          => :ADDRESS_LIST,
  "to"                => :ADDRESS_LIST,
  "cc"                => :ADDRESS_LIST,
  "bcc"               => :ADDRESS_LIST_BCC,
  "message-id"        => :MSG_ID,
  "in-reply-to"       => :PHRASE_MSG_ID_LIST,
  "references"        => :PHRASE_MSG_ID_LIST,
#    "subject"           => :UNSTRUCTURED,
#    "comments"          => :UNSTRUCTURED,
  "keywords"          => :PHRASE_LIST,
  "resent-date"       => :DATE_TIME,
  "resent-from"       => :MAILBOX_LIST,
  "resent-sender"     => :MAILBOX,
  "resent-to"         => :ADDRESS_LIST,
  "resent-cc"         => :ADDRESS_LIST,
  "resent-bcc"        => :ADDRESS_LIST_BCC,
  "resent-message-id" => :MSG_ID,
  "return-path"       => :RETURN_PATH,
  "received"          => :RECEIVED,
}
ZONE =
{
  "UT"  => "+0000",
  "GMT" => "+0000",
  "EDT" => "-0400",
  "EST" => "-0500",
  "CDT" => "-0500",
  "CST" => "-0600",
  "MDT" => "-0600",
  "MST" => "-0700",
  "PDT" => "-0700",
  "PST" => "-0800",
  "A"   => "+0100",
  "B"   => "+0200",
  "C"   => "+0300",
  "D"   => "+0400",
  "E"   => "+0500",
  "F"   => "+0600",
  "G"   => "+0700",
  "H"   => "+0800",
  "I"   => "+0900",
  "K"   => "+1000",
  "L"   => "+1100",
  "M"   => "+1200",
  "N"   => "-0100",
  "O"   => "-0200",
  "P"   => "-0300",
  "Q"   => "-0400",
  "R"   => "-0500",
  "S"   => "-0600",
  "T"   => "-0700",
  "U"   => "-0800",
  "V"   => "-0900",
  "W"   => "-1000",
  "X"   => "-1100",
  "Y"   => "-1200",
  "Z"   => "+0000",
  "JST" => "+0900",
}

Class Method Summary collapse

Class Method Details

.parse(name, value, opt = {}) ⇒ Object



207
208
209
210
211
212
213
214
215
216
217
# File 'lib/mailparser/rfc2822.rb', line 207

def parse(name, value, opt={})
  htype = HEADER_TYPE[name.downcase]
  unless htype then
    return value.chomp
  end
  if htype.is_a? Array then
    htype[0]::Parser.new(opt).parse(htype[1], value)
  else
    Parser.new(opt).parse(htype, value)
  end
end