/
mail.rb
114 lines (93 loc) · 3.25 KB
/
mail.rb
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# 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'
if RUBY_VERSION <= '1.8.6'
begin
require 'tlsmail'
rescue LoadError
raise "You need to install tlsmail if you are using ruby <= 1.8.6"
end
end
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/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/retriever_methods/pop3'
require 'mail/network/retriever_methods/imap'
require 'mail/message'
require 'mail/part'
require 'mail/header'
require 'mail/parts_list'
require 'mail/attachments_list'
require 'mail/body'
require 'mail/field'
require 'mail/field_list'
# Load in all common header fields modules
require 'mail/fields/common/address_container'
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
require "mail/encodings/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