mail-portertech 2.6.2.edge

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.rdoc +753 -0
  3. data/CONTRIBUTING.md +60 -0
  4. data/Dependencies.txt +2 -0
  5. data/Gemfile +15 -0
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +683 -0
  8. data/Rakefile +29 -0
  9. data/TODO.rdoc +9 -0
  10. data/lib/mail.rb +91 -0
  11. data/lib/mail/attachments_list.rb +104 -0
  12. data/lib/mail/body.rb +291 -0
  13. data/lib/mail/check_delivery_params.rb +20 -0
  14. data/lib/mail/configuration.rb +75 -0
  15. data/lib/mail/core_extensions/nil.rb +19 -0
  16. data/lib/mail/core_extensions/object.rb +13 -0
  17. data/lib/mail/core_extensions/smtp.rb +24 -0
  18. data/lib/mail/core_extensions/string.rb +43 -0
  19. data/lib/mail/core_extensions/string/access.rb +145 -0
  20. data/lib/mail/core_extensions/string/multibyte.rb +78 -0
  21. data/lib/mail/elements.rb +14 -0
  22. data/lib/mail/elements/address.rb +270 -0
  23. data/lib/mail/elements/address_list.rb +51 -0
  24. data/lib/mail/elements/content_disposition_element.rb +26 -0
  25. data/lib/mail/elements/content_location_element.rb +21 -0
  26. data/lib/mail/elements/content_transfer_encoding_element.rb +17 -0
  27. data/lib/mail/elements/content_type_element.rb +31 -0
  28. data/lib/mail/elements/date_time_element.rb +22 -0
  29. data/lib/mail/elements/envelope_from_element.rb +39 -0
  30. data/lib/mail/elements/message_ids_element.rb +24 -0
  31. data/lib/mail/elements/mime_version_element.rb +22 -0
  32. data/lib/mail/elements/phrase_list.rb +16 -0
  33. data/lib/mail/elements/received_element.rb +26 -0
  34. data/lib/mail/encodings.rb +304 -0
  35. data/lib/mail/encodings/7bit.rb +31 -0
  36. data/lib/mail/encodings/8bit.rb +31 -0
  37. data/lib/mail/encodings/base64.rb +33 -0
  38. data/lib/mail/encodings/binary.rb +31 -0
  39. data/lib/mail/encodings/quoted_printable.rb +39 -0
  40. data/lib/mail/encodings/transfer_encoding.rb +58 -0
  41. data/lib/mail/envelope.rb +30 -0
  42. data/lib/mail/field.rb +247 -0
  43. data/lib/mail/field_list.rb +33 -0
  44. data/lib/mail/fields.rb +35 -0
  45. data/lib/mail/fields/bcc_field.rb +56 -0
  46. data/lib/mail/fields/cc_field.rb +55 -0
  47. data/lib/mail/fields/comments_field.rb +41 -0
  48. data/lib/mail/fields/common/address_container.rb +16 -0
  49. data/lib/mail/fields/common/common_address.rb +135 -0
  50. data/lib/mail/fields/common/common_date.rb +35 -0
  51. data/lib/mail/fields/common/common_field.rb +57 -0
  52. data/lib/mail/fields/common/common_message_id.rb +48 -0
  53. data/lib/mail/fields/common/parameter_hash.rb +58 -0
  54. data/lib/mail/fields/content_description_field.rb +19 -0
  55. data/lib/mail/fields/content_disposition_field.rb +70 -0
  56. data/lib/mail/fields/content_id_field.rb +62 -0
  57. data/lib/mail/fields/content_location_field.rb +42 -0
  58. data/lib/mail/fields/content_transfer_encoding_field.rb +44 -0
  59. data/lib/mail/fields/content_type_field.rb +201 -0
  60. data/lib/mail/fields/date_field.rb +57 -0
  61. data/lib/mail/fields/from_field.rb +55 -0
  62. data/lib/mail/fields/in_reply_to_field.rb +56 -0
  63. data/lib/mail/fields/keywords_field.rb +44 -0
  64. data/lib/mail/fields/message_id_field.rb +82 -0
  65. data/lib/mail/fields/mime_version_field.rb +53 -0
  66. data/lib/mail/fields/optional_field.rb +13 -0
  67. data/lib/mail/fields/received_field.rb +75 -0
  68. data/lib/mail/fields/references_field.rb +56 -0
  69. data/lib/mail/fields/reply_to_field.rb +55 -0
  70. data/lib/mail/fields/resent_bcc_field.rb +55 -0
  71. data/lib/mail/fields/resent_cc_field.rb +55 -0
  72. data/lib/mail/fields/resent_date_field.rb +35 -0
  73. data/lib/mail/fields/resent_from_field.rb +55 -0
  74. data/lib/mail/fields/resent_message_id_field.rb +34 -0
  75. data/lib/mail/fields/resent_sender_field.rb +62 -0
  76. data/lib/mail/fields/resent_to_field.rb +55 -0
  77. data/lib/mail/fields/return_path_field.rb +65 -0
  78. data/lib/mail/fields/sender_field.rb +67 -0
  79. data/lib/mail/fields/structured_field.rb +51 -0
  80. data/lib/mail/fields/subject_field.rb +16 -0
  81. data/lib/mail/fields/to_field.rb +55 -0
  82. data/lib/mail/fields/unstructured_field.rb +204 -0
  83. data/lib/mail/header.rb +274 -0
  84. data/lib/mail/indifferent_hash.rb +146 -0
  85. data/lib/mail/mail.rb +267 -0
  86. data/lib/mail/matchers/has_sent_mail.rb +157 -0
  87. data/lib/mail/message.rb +2160 -0
  88. data/lib/mail/multibyte.rb +42 -0
  89. data/lib/mail/multibyte/chars.rb +474 -0
  90. data/lib/mail/multibyte/exceptions.rb +8 -0
  91. data/lib/mail/multibyte/unicode.rb +400 -0
  92. data/lib/mail/multibyte/utils.rb +60 -0
  93. data/lib/mail/network.rb +14 -0
  94. data/lib/mail/network/delivery_methods/exim.rb +52 -0
  95. data/lib/mail/network/delivery_methods/file_delivery.rb +45 -0
  96. data/lib/mail/network/delivery_methods/sendmail.rb +89 -0
  97. data/lib/mail/network/delivery_methods/smtp.rb +142 -0
  98. data/lib/mail/network/delivery_methods/smtp_connection.rb +61 -0
  99. data/lib/mail/network/delivery_methods/test_mailer.rb +44 -0
  100. data/lib/mail/network/retriever_methods/base.rb +63 -0
  101. data/lib/mail/network/retriever_methods/imap.rb +173 -0
  102. data/lib/mail/network/retriever_methods/pop3.rb +140 -0
  103. data/lib/mail/network/retriever_methods/test_retriever.rb +43 -0
  104. data/lib/mail/parsers.rb +26 -0
  105. data/lib/mail/parsers/address_lists_parser.rb +132 -0
  106. data/lib/mail/parsers/content_disposition_parser.rb +67 -0
  107. data/lib/mail/parsers/content_location_parser.rb +35 -0
  108. data/lib/mail/parsers/content_transfer_encoding_parser.rb +33 -0
  109. data/lib/mail/parsers/content_type_parser.rb +64 -0
  110. data/lib/mail/parsers/date_time_parser.rb +36 -0
  111. data/lib/mail/parsers/envelope_from_parser.rb +45 -0
  112. data/lib/mail/parsers/message_ids_parser.rb +39 -0
  113. data/lib/mail/parsers/mime_version_parser.rb +41 -0
  114. data/lib/mail/parsers/phrase_lists_parser.rb +33 -0
  115. data/lib/mail/parsers/ragel.rb +17 -0
  116. data/lib/mail/parsers/ragel/common.rl +184 -0
  117. data/lib/mail/parsers/ragel/date_time.rl +30 -0
  118. data/lib/mail/parsers/ragel/parser_info.rb +61 -0
  119. data/lib/mail/parsers/ragel/ruby.rb +39 -0
  120. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb +14864 -0
  121. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl +37 -0
  122. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb +751 -0
  123. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl +37 -0
  124. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb +614 -0
  125. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl +37 -0
  126. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb +447 -0
  127. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl +37 -0
  128. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb +825 -0
  129. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl +37 -0
  130. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb +817 -0
  131. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl +37 -0
  132. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb +2129 -0
  133. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl +37 -0
  134. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb +1570 -0
  135. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl +37 -0
  136. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb +440 -0
  137. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl +37 -0
  138. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb +564 -0
  139. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl +37 -0
  140. data/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl +51 -0
  141. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb +5144 -0
  142. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl +37 -0
  143. data/lib/mail/parsers/ragel/ruby/parser.rb.rl.erb +37 -0
  144. data/lib/mail/parsers/received_parser.rb +47 -0
  145. data/lib/mail/part.rb +120 -0
  146. data/lib/mail/parts_list.rb +57 -0
  147. data/lib/mail/patterns.rb +37 -0
  148. data/lib/mail/utilities.rb +225 -0
  149. data/lib/mail/values/unicode_tables.dat +0 -0
  150. data/lib/mail/version.rb +4 -0
  151. data/lib/mail/version_specific/ruby_1_8.rb +119 -0
  152. data/lib/mail/version_specific/ruby_1_9.rb +159 -0
  153. metadata +276 -0
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+ module Mail
3
+ VERSION = "2.6.2.edge"
4
+ end
@@ -0,0 +1,119 @@
1
+ # encoding: utf-8
2
+
3
+ module Mail
4
+ class Ruby18
5
+ require 'base64'
6
+ require 'iconv'
7
+
8
+ # Escapes any parenthesis in a string that are unescaped. This can't
9
+ # use the Ruby 1.9.1 regexp feature of negative look behind so we have
10
+ # to do two replacement, first unescape everything, then re-escape it
11
+ def Ruby18.escape_paren( str )
12
+ re = /\\\)/
13
+ str = str.gsub(re) { |s| ')'}
14
+ re = /\\\(/
15
+ str = str.gsub(re) { |s| '('}
16
+ re = /([\(\)])/ # Only match unescaped parens
17
+ str.gsub(re) { |s| '\\' + s }
18
+ end
19
+
20
+ def Ruby18.paren( str )
21
+ str = $1 if str =~ /^\((.*)?\)$/
22
+ str = escape_paren( str )
23
+ '(' + str + ')'
24
+ end
25
+
26
+ def Ruby18.escape_bracket( str )
27
+ re = /\\\>/
28
+ str = str.gsub(re) { |s| '>'}
29
+ re = /\\\</
30
+ str = str.gsub(re) { |s| '<'}
31
+ re = /([\<\>])/ # Only match unescaped parens
32
+ str.gsub(re) { |s| '\\' + s }
33
+ end
34
+
35
+ def Ruby18.bracket( str )
36
+ str = $1 if str =~ /^\<(.*)?\>$/
37
+ str = escape_bracket( str )
38
+ '<' + str + '>'
39
+ end
40
+
41
+ def Ruby18.decode_base64(str)
42
+ Base64.decode64(str) if str
43
+ end
44
+
45
+ def Ruby18.encode_base64(str)
46
+ Base64.encode64(str)
47
+ end
48
+
49
+ def Ruby18.has_constant?(klass, string)
50
+ klass.constants.include?( string )
51
+ end
52
+
53
+ def Ruby18.get_constant(klass, string)
54
+ klass.const_get( string )
55
+ end
56
+
57
+ def Ruby18.b_value_encode(str, encoding)
58
+ # Ruby 1.8 requires an encoding to work
59
+ raise ArgumentError, "Must supply an encoding" if encoding.nil?
60
+ encoding = encoding.to_s.upcase.gsub('_', '-')
61
+ [Encodings::Base64.encode(str), fix_encoding(encoding)]
62
+ end
63
+
64
+ def Ruby18.b_value_decode(str)
65
+ match = str.match(/\=\?(.+)?\?[Bb]\?(.+)?\?\=/m)
66
+ if match
67
+ encoding = match[1]
68
+ str = Ruby18.decode_base64(match[2])
69
+ str = Iconv.conv('UTF-8//IGNORE', fix_encoding(encoding), str)
70
+ end
71
+ str
72
+ end
73
+
74
+ def Ruby18.q_value_encode(str, encoding)
75
+ # Ruby 1.8 requires an encoding to work
76
+ raise ArgumentError, "Must supply an encoding" if encoding.nil?
77
+ encoding = encoding.to_s.upcase.gsub('_', '-')
78
+ [Encodings::QuotedPrintable.encode(str), encoding]
79
+ end
80
+
81
+ def Ruby18.q_value_decode(str)
82
+ match = str.match(/\=\?(.+)?\?[Qq]\?(.+)?\?\=/m)
83
+ if match
84
+ encoding = match[1]
85
+ string = match[2].gsub(/_/, '=20')
86
+ # Remove trailing = if it exists in a Q encoding
87
+ string = string.sub(/\=$/, '')
88
+ str = Encodings::QuotedPrintable.decode(string)
89
+ str = Iconv.conv('UTF-8//IGNORE', fix_encoding(encoding), str)
90
+ end
91
+ str
92
+ end
93
+
94
+ def Ruby18.param_decode(str, encoding)
95
+ URI.unescape(str)
96
+ end
97
+
98
+ def Ruby18.param_encode(str)
99
+ encoding = $KCODE.to_s.downcase
100
+ language = Configuration.instance.param_encode_language
101
+ "#{encoding}'#{language}'#{URI.escape(str)}"
102
+ end
103
+
104
+ private
105
+
106
+ def Ruby18.fix_encoding(encoding)
107
+ case encoding.upcase
108
+ when 'UTF8', 'UTF_8'
109
+ 'UTF-8'
110
+ when 'UTF16', 'UTF-16'
111
+ 'UTF-16BE'
112
+ when 'UTF32', 'UTF-32'
113
+ 'UTF-32BE'
114
+ else
115
+ encoding
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,159 @@
1
+ # encoding: utf-8
2
+
3
+ module Mail
4
+ class Ruby19
5
+
6
+ # Escapes any parenthesis in a string that are unescaped this uses
7
+ # a Ruby 1.9.1 regexp feature of negative look behind
8
+ def Ruby19.escape_paren( str )
9
+ re = /(?<!\\)([\(\)])/ # Only match unescaped parens
10
+ str.gsub(re) { |s| '\\' + s }
11
+ end
12
+
13
+ def Ruby19.paren( str )
14
+ str = $1 if str =~ /^\((.*)?\)$/
15
+ str = escape_paren( str )
16
+ '(' + str + ')'
17
+ end
18
+
19
+ def Ruby19.escape_bracket( str )
20
+ re = /(?<!\\)([\<\>])/ # Only match unescaped brackets
21
+ str.gsub(re) { |s| '\\' + s }
22
+ end
23
+
24
+ def Ruby19.bracket( str )
25
+ str = $1 if str =~ /^\<(.*)?\>$/
26
+ str = escape_bracket( str )
27
+ '<' + str + '>'
28
+ end
29
+
30
+ def Ruby19.decode_base64(str)
31
+ str.unpack( 'm' ).first
32
+ end
33
+
34
+ def Ruby19.encode_base64(str)
35
+ [str].pack( 'm' )
36
+ end
37
+
38
+ def Ruby19.has_constant?(klass, string)
39
+ klass.const_defined?( string, false )
40
+ end
41
+
42
+ def Ruby19.get_constant(klass, string)
43
+ klass.const_get( string )
44
+ end
45
+
46
+ def Ruby19.b_value_encode(str, encoding = nil)
47
+ encoding = str.encoding.to_s
48
+ [Ruby19.encode_base64(str), encoding]
49
+ end
50
+
51
+ def Ruby19.b_value_decode(str)
52
+ match = str.match(/\=\?(.+)?\?[Bb]\?(.+)?\?\=/m)
53
+ if match
54
+ charset = match[1]
55
+ str = Ruby19.decode_base64(match[2])
56
+ str.force_encoding(pick_encoding(charset))
57
+ end
58
+ decoded = str.encode("utf-8", :invalid => :replace, :replace => "")
59
+ decoded.valid_encoding? ? decoded : decoded.encode("utf-16le", :invalid => :replace, :replace => "").encode("utf-8")
60
+ end
61
+
62
+ def Ruby19.q_value_encode(str, encoding = nil)
63
+ encoding = str.encoding.to_s
64
+ [Encodings::QuotedPrintable.encode(str), encoding]
65
+ end
66
+
67
+ def Ruby19.q_value_decode(str)
68
+ match = str.match(/\=\?(.+)?\?[Qq]\?(.+)?\?\=/m)
69
+ if match
70
+ charset = match[1]
71
+ string = match[2].gsub(/_/, '=20')
72
+ # Remove trailing = if it exists in a Q encoding
73
+ string = string.sub(/\=$/, '')
74
+ str = Encodings::QuotedPrintable.decode(string)
75
+ str.force_encoding(pick_encoding(charset))
76
+ # We assume that binary strings hold utf-8 directly to work around
77
+ # jruby/jruby#829 which subtly changes String#encode semantics.
78
+ str.force_encoding('utf-8') if str.encoding == Encoding::ASCII_8BIT
79
+ end
80
+ decoded = str.encode("utf-8", :invalid => :replace, :replace => "")
81
+ decoded.valid_encoding? ? decoded : decoded.encode("utf-16le", :invalid => :replace, :replace => "").encode("utf-8")
82
+ rescue Encoding::UndefinedConversionError
83
+ str.dup.force_encoding("utf-8")
84
+ end
85
+
86
+ def Ruby19.param_decode(str, encoding)
87
+ string = uri_parser.unescape(str)
88
+ string.force_encoding(encoding) if encoding
89
+ string
90
+ end
91
+
92
+ def Ruby19.param_encode(str)
93
+ encoding = str.encoding.to_s.downcase
94
+ language = Configuration.instance.param_encode_language
95
+ "#{encoding}'#{language}'#{uri_parser.escape(str)}"
96
+ end
97
+
98
+ def Ruby19.uri_parser
99
+ @uri_parser ||= URI::Parser.new
100
+ end
101
+
102
+ # Pick a Ruby encoding corresponding to the message charset. Most
103
+ # charsets have a Ruby encoding, but some need manual aliasing here.
104
+ #
105
+ # TODO: add this as a test somewhere:
106
+ # Encoding.list.map { |e| [e.to_s.upcase == pick_encoding(e.to_s.downcase.gsub("-", "")), e.to_s] }.select {|a,b| !b}
107
+ # Encoding.list.map { |e| [e.to_s == pick_encoding(e.to_s), e.to_s] }.select {|a,b| !b}
108
+ def Ruby19.pick_encoding(charset)
109
+ case charset
110
+
111
+ # ISO-8859-8-I etc. http://en.wikipedia.org/wiki/ISO-8859-8-I
112
+ when /^iso-?8859-(\d+)(-i)?$/i
113
+ "ISO-8859-#{$1}"
114
+
115
+ # ISO-8859-15, ISO-2022-JP and alike
116
+ when /iso-?(\d{4})-?(\w{1,2})/i
117
+ "ISO-#{$1}-#{$2}"
118
+
119
+ # "ISO-2022-JP-KDDI" and alike
120
+ when /iso-?(\d{4})-?(\w{1,2})-?(\w*)/i
121
+ "ISO-#{$1}-#{$2}-#{$3}"
122
+
123
+ # UTF-8, UTF-32BE and alike
124
+ when /utf[\-_]?(\d{1,2})?(\w{1,2})/i
125
+ "UTF-#{$1}#{$2}".gsub(/\A(UTF-(?:16|32))\z/, '\\1BE')
126
+
127
+ # Windows-1252 and alike
128
+ when /Windows-?(.*)/i
129
+ "Windows-#{$1}"
130
+
131
+ when /^8bit$/
132
+ Encoding::ASCII_8BIT
133
+
134
+ # alternatives/misspellings of us-ascii seen in the wild
135
+ when /^iso-?646(-us)?$/i, /us=ascii/i
136
+ Encoding::ASCII
137
+
138
+ # Microsoft-specific alias for MACROMAN
139
+ when /^macintosh$/i
140
+ Encoding::MACROMAN
141
+
142
+ # Microsoft-specific alias for CP949 (Korean)
143
+ when 'ks_c_5601-1987'
144
+ Encoding::CP949
145
+
146
+ # Wrongly written Shift_JIS (Japanese)
147
+ when 'shift-jis'
148
+ Encoding::Shift_JIS
149
+
150
+ # GB2312 (Chinese charset) is a subset of GB18030 (its replacement)
151
+ when /gb2312/i
152
+ Encoding::GB18030
153
+
154
+ else
155
+ charset
156
+ end
157
+ end
158
+ end
159
+ end
metadata ADDED
@@ -0,0 +1,276 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mail-portertech
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.6.2.edge
5
+ platform: ruby
6
+ authors:
7
+ - Mikel Lindsaar
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mime-types
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.16'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.0.3
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.0.3
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.8.7
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.8.7
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 3.0.0
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 3.0.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: rdoc
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ description: A really Ruby Mail handler.
90
+ email: raasdnil@gmail.com
91
+ executables: []
92
+ extensions: []
93
+ extra_rdoc_files:
94
+ - README.md
95
+ - CONTRIBUTING.md
96
+ - CHANGELOG.rdoc
97
+ - TODO.rdoc
98
+ files:
99
+ - CHANGELOG.rdoc
100
+ - CONTRIBUTING.md
101
+ - Dependencies.txt
102
+ - Gemfile
103
+ - MIT-LICENSE
104
+ - README.md
105
+ - Rakefile
106
+ - TODO.rdoc
107
+ - lib/mail.rb
108
+ - lib/mail/attachments_list.rb
109
+ - lib/mail/body.rb
110
+ - lib/mail/check_delivery_params.rb
111
+ - lib/mail/configuration.rb
112
+ - lib/mail/core_extensions/nil.rb
113
+ - lib/mail/core_extensions/object.rb
114
+ - lib/mail/core_extensions/smtp.rb
115
+ - lib/mail/core_extensions/string.rb
116
+ - lib/mail/core_extensions/string/access.rb
117
+ - lib/mail/core_extensions/string/multibyte.rb
118
+ - lib/mail/elements.rb
119
+ - lib/mail/elements/address.rb
120
+ - lib/mail/elements/address_list.rb
121
+ - lib/mail/elements/content_disposition_element.rb
122
+ - lib/mail/elements/content_location_element.rb
123
+ - lib/mail/elements/content_transfer_encoding_element.rb
124
+ - lib/mail/elements/content_type_element.rb
125
+ - lib/mail/elements/date_time_element.rb
126
+ - lib/mail/elements/envelope_from_element.rb
127
+ - lib/mail/elements/message_ids_element.rb
128
+ - lib/mail/elements/mime_version_element.rb
129
+ - lib/mail/elements/phrase_list.rb
130
+ - lib/mail/elements/received_element.rb
131
+ - lib/mail/encodings.rb
132
+ - lib/mail/encodings/7bit.rb
133
+ - lib/mail/encodings/8bit.rb
134
+ - lib/mail/encodings/base64.rb
135
+ - lib/mail/encodings/binary.rb
136
+ - lib/mail/encodings/quoted_printable.rb
137
+ - lib/mail/encodings/transfer_encoding.rb
138
+ - lib/mail/envelope.rb
139
+ - lib/mail/field.rb
140
+ - lib/mail/field_list.rb
141
+ - lib/mail/fields.rb
142
+ - lib/mail/fields/bcc_field.rb
143
+ - lib/mail/fields/cc_field.rb
144
+ - lib/mail/fields/comments_field.rb
145
+ - lib/mail/fields/common/address_container.rb
146
+ - lib/mail/fields/common/common_address.rb
147
+ - lib/mail/fields/common/common_date.rb
148
+ - lib/mail/fields/common/common_field.rb
149
+ - lib/mail/fields/common/common_message_id.rb
150
+ - lib/mail/fields/common/parameter_hash.rb
151
+ - lib/mail/fields/content_description_field.rb
152
+ - lib/mail/fields/content_disposition_field.rb
153
+ - lib/mail/fields/content_id_field.rb
154
+ - lib/mail/fields/content_location_field.rb
155
+ - lib/mail/fields/content_transfer_encoding_field.rb
156
+ - lib/mail/fields/content_type_field.rb
157
+ - lib/mail/fields/date_field.rb
158
+ - lib/mail/fields/from_field.rb
159
+ - lib/mail/fields/in_reply_to_field.rb
160
+ - lib/mail/fields/keywords_field.rb
161
+ - lib/mail/fields/message_id_field.rb
162
+ - lib/mail/fields/mime_version_field.rb
163
+ - lib/mail/fields/optional_field.rb
164
+ - lib/mail/fields/received_field.rb
165
+ - lib/mail/fields/references_field.rb
166
+ - lib/mail/fields/reply_to_field.rb
167
+ - lib/mail/fields/resent_bcc_field.rb
168
+ - lib/mail/fields/resent_cc_field.rb
169
+ - lib/mail/fields/resent_date_field.rb
170
+ - lib/mail/fields/resent_from_field.rb
171
+ - lib/mail/fields/resent_message_id_field.rb
172
+ - lib/mail/fields/resent_sender_field.rb
173
+ - lib/mail/fields/resent_to_field.rb
174
+ - lib/mail/fields/return_path_field.rb
175
+ - lib/mail/fields/sender_field.rb
176
+ - lib/mail/fields/structured_field.rb
177
+ - lib/mail/fields/subject_field.rb
178
+ - lib/mail/fields/to_field.rb
179
+ - lib/mail/fields/unstructured_field.rb
180
+ - lib/mail/header.rb
181
+ - lib/mail/indifferent_hash.rb
182
+ - lib/mail/mail.rb
183
+ - lib/mail/matchers/has_sent_mail.rb
184
+ - lib/mail/message.rb
185
+ - lib/mail/multibyte.rb
186
+ - lib/mail/multibyte/chars.rb
187
+ - lib/mail/multibyte/exceptions.rb
188
+ - lib/mail/multibyte/unicode.rb
189
+ - lib/mail/multibyte/utils.rb
190
+ - lib/mail/network.rb
191
+ - lib/mail/network/delivery_methods/exim.rb
192
+ - lib/mail/network/delivery_methods/file_delivery.rb
193
+ - lib/mail/network/delivery_methods/sendmail.rb
194
+ - lib/mail/network/delivery_methods/smtp.rb
195
+ - lib/mail/network/delivery_methods/smtp_connection.rb
196
+ - lib/mail/network/delivery_methods/test_mailer.rb
197
+ - lib/mail/network/retriever_methods/base.rb
198
+ - lib/mail/network/retriever_methods/imap.rb
199
+ - lib/mail/network/retriever_methods/pop3.rb
200
+ - lib/mail/network/retriever_methods/test_retriever.rb
201
+ - lib/mail/parsers.rb
202
+ - lib/mail/parsers/address_lists_parser.rb
203
+ - lib/mail/parsers/content_disposition_parser.rb
204
+ - lib/mail/parsers/content_location_parser.rb
205
+ - lib/mail/parsers/content_transfer_encoding_parser.rb
206
+ - lib/mail/parsers/content_type_parser.rb
207
+ - lib/mail/parsers/date_time_parser.rb
208
+ - lib/mail/parsers/envelope_from_parser.rb
209
+ - lib/mail/parsers/message_ids_parser.rb
210
+ - lib/mail/parsers/mime_version_parser.rb
211
+ - lib/mail/parsers/phrase_lists_parser.rb
212
+ - lib/mail/parsers/ragel.rb
213
+ - lib/mail/parsers/ragel/common.rl
214
+ - lib/mail/parsers/ragel/date_time.rl
215
+ - lib/mail/parsers/ragel/parser_info.rb
216
+ - lib/mail/parsers/ragel/ruby.rb
217
+ - lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb
218
+ - lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl
219
+ - lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb
220
+ - lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl
221
+ - lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb
222
+ - lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl
223
+ - lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb
224
+ - lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl
225
+ - lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb
226
+ - lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl
227
+ - lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb
228
+ - lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl
229
+ - lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb
230
+ - lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl
231
+ - lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb
232
+ - lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl
233
+ - lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb
234
+ - lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl
235
+ - lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb
236
+ - lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl
237
+ - lib/mail/parsers/ragel/ruby/machines/rb_actions.rl
238
+ - lib/mail/parsers/ragel/ruby/machines/received_machine.rb
239
+ - lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl
240
+ - lib/mail/parsers/ragel/ruby/parser.rb.rl.erb
241
+ - lib/mail/parsers/received_parser.rb
242
+ - lib/mail/part.rb
243
+ - lib/mail/parts_list.rb
244
+ - lib/mail/patterns.rb
245
+ - lib/mail/utilities.rb
246
+ - lib/mail/values/unicode_tables.dat
247
+ - lib/mail/version.rb
248
+ - lib/mail/version_specific/ruby_1_8.rb
249
+ - lib/mail/version_specific/ruby_1_9.rb
250
+ homepage: http://github.com/mikel/mail
251
+ licenses:
252
+ - MIT
253
+ metadata: {}
254
+ post_install_message:
255
+ rdoc_options:
256
+ - "--exclude"
257
+ - lib/mail/values/unicode_tables.dat
258
+ require_paths:
259
+ - lib
260
+ required_ruby_version: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">"
268
+ - !ruby/object:Gem::Version
269
+ version: 1.3.1
270
+ requirements: []
271
+ rubyforge_project:
272
+ rubygems_version: 2.2.0
273
+ signing_key:
274
+ specification_version: 4
275
+ summary: Mail provides a nice Ruby DSL for making, sending and reading emails.
276
+ test_files: []