# encoding: utf-8 module Mail # :doc: require 'date' require 'active_support' # Have to handle ActiveSupport 2.3 and 3.0 # Following two lines make sure that HashWithIndifferentAccess is available # regardless of having activesupport 3 or 2.3 loaded require 'active_support/core_ext/hash/indifferent_access' require 'mail/vendor/treetop' require 'uri' require 'net/smtp' require 'mime/types' require 'tlsmail' if RUBY_VERSION <= '1.8.6' if RUBY_VERSION >= "1.9.1" require 'mail/version_specific/ruby_1_9.rb' RubyVer = Mail::Ruby19 else require 'mail/version_specific/ruby_1_8.rb' RubyVer = Mail::Ruby18 end require 'mail/version' begin require 'active_support/core_ext/object/blank' rescue LoadError # Unneeded for Active Support <= 3.0.pre end require 'mail/core_extensions/nil' require 'mail/core_extensions/string' require 'mail/patterns' require 'mail/utilities' require 'mail/configuration' require 'mail/network/deliverable' require 'mail/network/delivery_methods/smtp' require 'mail/network/delivery_methods/file_delivery' require 'mail/network/delivery_methods/sendmail' require 'mail/network/delivery_methods/test_mailer' require 'mail/network/retrievable' require 'mail/network/retriever_methods/pop3' require 'mail/network/retriever_methods/imap' require 'mail/message' require 'mail/part' require 'mail/header' require 'mail/body' require 'mail/field' require 'mail/field_list' require 'mail/attachment' # Load in all common header fields modules require 'mail/fields/common/common_address' require 'mail/fields/common/common_date' require 'mail/fields/common/common_field' require 'mail/fields/common/common_message_id' require 'mail/fields/common/parameter_hash' require 'mail/fields/structured_field' require 'mail/fields/unstructured_field' require 'mail/envelope' parsers = %w[ rfc2822_obsolete rfc2822 address_lists phrase_lists date_time received message_ids envelope_from rfc2045 mime_version content_type content_disposition content_transfer_encoding content_location ] parsers.each do |parser| begin # Try requiring the pre-compiled ruby version first require "mail/parsers/#{parser}" rescue LoadError # Otherwise, get treetop to compile and load it Treetop.load("mail/parsers/#{parser}") end end # Load in all header field elements elems = Dir.glob(File.join(File.dirname(__FILE__), 'mail', 'elements', '*.rb')) elems.each do |elem| require "mail/elements/#{File.basename(elem, '.rb')}" end # Load in all header fields fields = Dir.glob(File.join(File.dirname(__FILE__), 'mail', 'fields', '*.rb')) fields.each do |field| require "mail/fields/#{File.basename(field, '.rb')}" end # Load in all transfer encodings elems = Dir.glob(File.join(File.dirname(__FILE__), 'mail', 'encodings', '*.rb')) elems.each do |elem| require "mail/encodings/#{File.basename(elem, '.rb')}" end # Finally... require all the Mail.methods require File.join('mail', 'mail') end