mail-portertech 2.6.2.edge

Sign up to get free protection for your applications and to get access to all the features.
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: []