mail 2.6.3 → 2.6.4.rc2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +22 -0
- data/Gemfile +1 -5
- data/MIT-LICENSE +1 -1
- data/README.md +38 -2
- data/Rakefile +2 -2
- data/lib/mail/body.rb +4 -4
- data/lib/mail/check_delivery_params.rb +3 -3
- data/lib/mail/constants.rb +3 -2
- data/lib/mail/core_extensions/string.rb +0 -26
- data/lib/mail/elements/address.rb +7 -7
- data/lib/mail/encodings/8bit.rb +7 -2
- data/lib/mail/encodings/base64.rb +6 -1
- data/lib/mail/encodings/quoted_printable.rb +8 -3
- data/lib/mail/encodings/transfer_encoding.rb +26 -17
- data/lib/mail/encodings.rb +25 -28
- data/lib/mail/field.rb +18 -4
- data/lib/mail/fields/bcc_field.rb +14 -3
- data/lib/mail/fields/cc_field.rb +0 -1
- data/lib/mail/fields/common/common_address.rb +7 -7
- data/lib/mail/fields/common/common_date.rb +1 -1
- data/lib/mail/fields/common/common_field.rb +1 -1
- data/lib/mail/fields/common/common_message_id.rb +2 -2
- data/lib/mail/fields/content_disposition_field.rb +11 -11
- data/lib/mail/fields/content_id_field.rb +2 -2
- data/lib/mail/fields/content_location_field.rb +1 -1
- data/lib/mail/fields/content_transfer_encoding_field.rb +1 -1
- data/lib/mail/fields/content_type_field.rb +1 -1
- data/lib/mail/fields/date_field.rb +1 -1
- data/lib/mail/fields/from_field.rb +0 -1
- data/lib/mail/fields/keywords_field.rb +1 -2
- data/lib/mail/fields/message_id_field.rb +1 -1
- data/lib/mail/fields/mime_version_field.rb +2 -2
- data/lib/mail/fields/received_field.rb +3 -3
- data/lib/mail/fields/reply_to_field.rb +0 -1
- data/lib/mail/fields/resent_bcc_field.rb +0 -1
- data/lib/mail/fields/resent_cc_field.rb +0 -1
- data/lib/mail/fields/resent_date_field.rb +1 -1
- data/lib/mail/fields/resent_from_field.rb +0 -1
- data/lib/mail/fields/resent_sender_field.rb +0 -1
- data/lib/mail/fields/resent_to_field.rb +0 -1
- data/lib/mail/fields/return_path_field.rb +0 -1
- data/lib/mail/fields/sender_field.rb +0 -1
- data/lib/mail/fields/to_field.rb +0 -1
- data/lib/mail/fields/unstructured_field.rb +2 -2
- data/lib/mail/header.rb +5 -5
- data/lib/mail/matchers/attachment_matchers.rb +28 -0
- data/lib/mail/matchers/has_sent_mail.rb +30 -7
- data/lib/mail/message.rb +16 -22
- data/lib/mail/multibyte/unicode.rb +20 -16
- data/lib/mail/network/delivery_methods/exim.rb +1 -1
- data/lib/mail/network/delivery_methods/sendmail.rb +1 -1
- data/lib/mail/parsers/address_lists_parser.rb +1 -1
- data/lib/mail/parsers/content_disposition_parser.rb +1 -1
- data/lib/mail/parsers/content_location_parser.rb +1 -1
- data/lib/mail/parsers/content_transfer_encoding_parser.rb +1 -1
- data/lib/mail/parsers/envelope_from_parser.rb +1 -1
- data/lib/mail/parsers/message_ids_parser.rb +1 -1
- data/lib/mail/parsers/mime_version_parser.rb +1 -1
- data/lib/mail/part.rb +4 -2
- data/lib/mail/parts_list.rb +25 -8
- data/lib/mail/utilities.rb +36 -0
- data/lib/mail/values/unicode_tables.dat +0 -0
- data/lib/mail/version.rb +2 -2
- data/lib/mail/version_specific/ruby_1_8.rb +10 -4
- data/lib/mail/version_specific/ruby_1_9.rb +39 -10
- data/lib/mail.rb +8 -3
- metadata +10 -11
- data/lib/mail/core_extensions/nil.rb +0 -19
- data/lib/mail/core_extensions/object.rb +0 -13
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
module Mail
|
|
2
2
|
module Multibyte
|
|
3
3
|
module Unicode
|
|
4
|
+
# Adapted from https://github.com/rails/rails/blob/master/activesupport/lib/active_support/multibyte/unicode.rb
|
|
5
|
+
# under the MIT license
|
|
6
|
+
# The Unicode version that is supported by the implementation
|
|
7
|
+
UNICODE_VERSION = '7.0.0'
|
|
8
|
+
|
|
9
|
+
# Holds data about a codepoint in the Unicode database.
|
|
10
|
+
class Codepoint
|
|
11
|
+
attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping
|
|
12
|
+
|
|
13
|
+
# Initializing Codepoint object with default values
|
|
14
|
+
def initialize
|
|
15
|
+
@combining_class = 0
|
|
16
|
+
@uppercase_mapping = 0
|
|
17
|
+
@lowercase_mapping = 0
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def swapcase_mapping
|
|
21
|
+
uppercase_mapping > 0 ? uppercase_mapping : lowercase_mapping
|
|
22
|
+
end
|
|
23
|
+
end
|
|
4
24
|
|
|
5
25
|
extend self
|
|
6
26
|
|
|
@@ -8,9 +28,6 @@ module Mail
|
|
|
8
28
|
# information about normalization.
|
|
9
29
|
NORMALIZATION_FORMS = [:c, :kc, :d, :kd]
|
|
10
30
|
|
|
11
|
-
# The Unicode version that is supported by the implementation
|
|
12
|
-
UNICODE_VERSION = '5.2.0'
|
|
13
|
-
|
|
14
31
|
# The default normalization used for operations that require normalization. It can be set to any of the
|
|
15
32
|
# normalizations in NORMALIZATION_FORMS.
|
|
16
33
|
#
|
|
@@ -308,11 +325,6 @@ module Mail
|
|
|
308
325
|
end.pack('U*')
|
|
309
326
|
end
|
|
310
327
|
|
|
311
|
-
# Holds data about a codepoint in the Unicode database
|
|
312
|
-
class Codepoint
|
|
313
|
-
attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping
|
|
314
|
-
end
|
|
315
|
-
|
|
316
328
|
# Holds static data from the Unicode database
|
|
317
329
|
class UnicodeDatabase
|
|
318
330
|
ATTRIBUTES = :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252
|
|
@@ -390,11 +402,3 @@ module Mail
|
|
|
390
402
|
end
|
|
391
403
|
end
|
|
392
404
|
end
|
|
393
|
-
|
|
394
|
-
unless defined?(ActiveSupport)
|
|
395
|
-
module ActiveSupport
|
|
396
|
-
unless const_defined?(:Multibyte)
|
|
397
|
-
Multibyte = Mail::Multibyte
|
|
398
|
-
end
|
|
399
|
-
end
|
|
400
|
-
end
|
data/lib/mail/part.rb
CHANGED
|
@@ -34,7 +34,7 @@ module Mail
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def inline?
|
|
37
|
-
header[:content_disposition].disposition_type == 'inline' if header[:content_disposition]
|
|
37
|
+
header[:content_disposition].disposition_type == 'inline' if header[:content_disposition].respond_to?(:disposition_type)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def add_required_fields
|
|
@@ -94,8 +94,10 @@ module Mail
|
|
|
94
94
|
def get_return_values(key)
|
|
95
95
|
if delivery_status_data[key].is_a?(Array)
|
|
96
96
|
delivery_status_data[key].map { |a| a.value }
|
|
97
|
-
|
|
97
|
+
elsif !delivery_status_data[key].nil?
|
|
98
98
|
delivery_status_data[key].value
|
|
99
|
+
else
|
|
100
|
+
nil
|
|
99
101
|
end
|
|
100
102
|
end
|
|
101
103
|
|
data/lib/mail/parts_list.rb
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
|
+
require 'delegate'
|
|
2
|
+
|
|
1
3
|
module Mail
|
|
2
|
-
class PartsList < Array
|
|
4
|
+
class PartsList < DelegateClass(Array)
|
|
5
|
+
attr_reader :parts
|
|
6
|
+
|
|
7
|
+
def initialize(*args)
|
|
8
|
+
@parts = Array.new(*args)
|
|
9
|
+
super @parts
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# The #encode_with and #to_yaml methods are just implemented
|
|
13
|
+
# for the sake of backward compatibility ; the delegator does
|
|
14
|
+
# not correctly delegate these calls to the delegated object
|
|
15
|
+
def encode_with(coder) # :nodoc:
|
|
16
|
+
coder.represent_object(nil, @parts)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to_yaml(options = {}) # :nodoc:
|
|
20
|
+
@parts.to_yaml(options)
|
|
21
|
+
end
|
|
3
22
|
|
|
4
23
|
def attachments
|
|
5
|
-
Mail::AttachmentsList.new(
|
|
24
|
+
Mail::AttachmentsList.new(@parts)
|
|
6
25
|
end
|
|
7
26
|
|
|
8
27
|
def collect
|
|
@@ -14,8 +33,6 @@ module Mail
|
|
|
14
33
|
to_a
|
|
15
34
|
end
|
|
16
35
|
end
|
|
17
|
-
|
|
18
|
-
undef :map
|
|
19
36
|
alias_method :map, :collect
|
|
20
37
|
|
|
21
38
|
def map!
|
|
@@ -27,20 +44,20 @@ module Mail
|
|
|
27
44
|
end
|
|
28
45
|
|
|
29
46
|
def sort
|
|
30
|
-
self.class.new(
|
|
47
|
+
self.class.new(@parts.sort)
|
|
31
48
|
end
|
|
32
49
|
|
|
33
50
|
def sort!(order)
|
|
34
51
|
# stable sort should be used to maintain the relative order as the parts are added
|
|
35
52
|
i = 0;
|
|
36
|
-
sorted =
|
|
53
|
+
sorted = @parts.sort_by do |a|
|
|
37
54
|
# OK, 10000 is arbitrary... if anyone actually wants to explicitly sort 10000 parts of a
|
|
38
55
|
# single email message... please show me a use case and I'll put more work into this method,
|
|
39
56
|
# in the meantime, it works :)
|
|
40
57
|
[get_order_value(a, order), i += 1]
|
|
41
58
|
end
|
|
42
|
-
|
|
43
|
-
sorted.each { |p|
|
|
59
|
+
@parts.clear
|
|
60
|
+
sorted.each { |p| @parts << p }
|
|
44
61
|
end
|
|
45
62
|
|
|
46
63
|
private
|
data/lib/mail/utilities.rb
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
module Mail
|
|
3
3
|
module Utilities
|
|
4
|
+
|
|
5
|
+
LF = "\n"
|
|
6
|
+
CRLF = "\r\n"
|
|
7
|
+
|
|
4
8
|
include Constants
|
|
5
9
|
|
|
6
10
|
# Returns true if the string supplied is free from characters not allowed as an ATOM
|
|
@@ -219,6 +223,38 @@ module Mail
|
|
|
219
223
|
enum.each_with_index.map(&block)
|
|
220
224
|
end
|
|
221
225
|
|
|
226
|
+
def self.to_lf input
|
|
227
|
+
input.kind_of?(String) ? input.to_str.gsub(/\r\n|\r/, LF) : ''
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
if RUBY_VERSION >= '1.9'
|
|
231
|
+
# This 1.9 only regex can save a reasonable amount of time (~20%)
|
|
232
|
+
# by not matching "\r\n" so the string is returned unchanged in
|
|
233
|
+
# the common case.
|
|
234
|
+
CRLF_REGEX = Regexp.new("(?<!\r)\n|\r(?!\n)")
|
|
235
|
+
else
|
|
236
|
+
CRLF_REGEX = /\n|\r\n|\r/
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def self.to_crlf input
|
|
240
|
+
input.kind_of?(String) ? input.to_str.gsub(CRLF_REGEX, CRLF) : ''
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Returns true if the object is considered blank.
|
|
246
|
+
# A blank includes things like '', ' ', nil,
|
|
247
|
+
# and arrays and hashes that have nothing in them.
|
|
248
|
+
#
|
|
249
|
+
# This logic is mostly shared with ActiveSupport's blank?
|
|
250
|
+
def self.blank?(value)
|
|
251
|
+
if value.kind_of?(NilClass)
|
|
252
|
+
true
|
|
253
|
+
elsif value.kind_of?(String)
|
|
254
|
+
value !~ /\S/
|
|
255
|
+
else
|
|
256
|
+
value.respond_to?(:empty?) ? value.empty? : !value
|
|
257
|
+
end
|
|
222
258
|
end
|
|
223
259
|
|
|
224
260
|
end
|
|
Binary file
|
data/lib/mail/version.rb
CHANGED
|
@@ -54,11 +54,15 @@ module Mail
|
|
|
54
54
|
klass.const_get( string )
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
+
def Ruby18.transcode_charset(str, from_encoding, to_encoding = 'UTF-8')
|
|
58
|
+
Iconv.conv("#{normalize_iconv_charset_encoding(to_encoding)}//IGNORE", normalize_iconv_charset_encoding(from_encoding), str)
|
|
59
|
+
end
|
|
60
|
+
|
|
57
61
|
def Ruby18.b_value_encode(str, encoding)
|
|
58
62
|
# Ruby 1.8 requires an encoding to work
|
|
59
63
|
raise ArgumentError, "Must supply an encoding" if encoding.nil?
|
|
60
64
|
encoding = encoding.to_s.upcase.gsub('_', '-')
|
|
61
|
-
[Encodings::Base64.encode(str),
|
|
65
|
+
[Encodings::Base64.encode(str), normalize_iconv_charset_encoding(encoding)]
|
|
62
66
|
end
|
|
63
67
|
|
|
64
68
|
def Ruby18.b_value_decode(str)
|
|
@@ -66,7 +70,7 @@ module Mail
|
|
|
66
70
|
if match
|
|
67
71
|
encoding = match[1]
|
|
68
72
|
str = Ruby18.decode_base64(match[2])
|
|
69
|
-
str =
|
|
73
|
+
str = transcode_charset(str, encoding)
|
|
70
74
|
end
|
|
71
75
|
str
|
|
72
76
|
end
|
|
@@ -86,7 +90,7 @@ module Mail
|
|
|
86
90
|
# Remove trailing = if it exists in a Q encoding
|
|
87
91
|
string = string.sub(/\=$/, '')
|
|
88
92
|
str = Encodings::QuotedPrintable.decode(string)
|
|
89
|
-
str =
|
|
93
|
+
str = transcode_charset(str, encoding)
|
|
90
94
|
end
|
|
91
95
|
str
|
|
92
96
|
end
|
|
@@ -103,7 +107,7 @@ module Mail
|
|
|
103
107
|
|
|
104
108
|
private
|
|
105
109
|
|
|
106
|
-
def Ruby18.
|
|
110
|
+
def Ruby18.normalize_iconv_charset_encoding(encoding)
|
|
107
111
|
case encoding.upcase
|
|
108
112
|
when 'UTF8', 'UTF_8'
|
|
109
113
|
'UTF-8'
|
|
@@ -111,6 +115,8 @@ module Mail
|
|
|
111
115
|
'UTF-16BE'
|
|
112
116
|
when 'UTF32', 'UTF-32'
|
|
113
117
|
'UTF-32BE'
|
|
118
|
+
when 'KS_C_5601-1987'
|
|
119
|
+
'CP949'
|
|
114
120
|
else
|
|
115
121
|
encoding
|
|
116
122
|
end
|
|
@@ -73,6 +73,10 @@ module Mail
|
|
|
73
73
|
klass.const_get( string )
|
|
74
74
|
end
|
|
75
75
|
|
|
76
|
+
def Ruby19.transcode_charset(str, from_encoding, to_encoding = Encoding::UTF_8)
|
|
77
|
+
charset_encoder.encode(str.dup, from_encoding).encode(to_encoding, :undef => :replace, :invalid => :replace, :replace => '')
|
|
78
|
+
end
|
|
79
|
+
|
|
76
80
|
def Ruby19.b_value_encode(str, encoding = nil)
|
|
77
81
|
encoding = str.encoding.to_s
|
|
78
82
|
[Ruby19.encode_base64(str), encoding]
|
|
@@ -140,37 +144,38 @@ module Mail
|
|
|
140
144
|
# Encoding.list.map { |e| [e.to_s.upcase == pick_encoding(e.to_s.downcase.gsub("-", "")), e.to_s] }.select {|a,b| !b}
|
|
141
145
|
# Encoding.list.map { |e| [e.to_s == pick_encoding(e.to_s), e.to_s] }.select {|a,b| !b}
|
|
142
146
|
def Ruby19.pick_encoding(charset)
|
|
143
|
-
|
|
147
|
+
charset = charset.to_s
|
|
148
|
+
encoding = case charset.downcase
|
|
144
149
|
|
|
145
150
|
# ISO-8859-8-I etc. http://en.wikipedia.org/wiki/ISO-8859-8-I
|
|
146
|
-
when /^iso
|
|
151
|
+
when /^iso[-_]?8859-(\d+)(-i)?$/
|
|
147
152
|
"ISO-8859-#{$1}"
|
|
148
153
|
|
|
149
154
|
# ISO-8859-15, ISO-2022-JP and alike
|
|
150
|
-
when
|
|
155
|
+
when /^iso[-_]?(\d{4})-?(\w{1,2})$/
|
|
151
156
|
"ISO-#{$1}-#{$2}"
|
|
152
157
|
|
|
153
158
|
# "ISO-2022-JP-KDDI" and alike
|
|
154
|
-
when
|
|
159
|
+
when /^iso[-_]?(\d{4})-?(\w{1,2})-?(\w*)$/
|
|
155
160
|
"ISO-#{$1}-#{$2}-#{$3}"
|
|
156
161
|
|
|
157
162
|
# UTF-8, UTF-32BE and alike
|
|
158
|
-
when
|
|
163
|
+
when /^utf[\-_]?(\d{1,2})?(\w{1,2})$/
|
|
159
164
|
"UTF-#{$1}#{$2}".gsub(/\A(UTF-(?:16|32))\z/, '\\1BE')
|
|
160
165
|
|
|
161
166
|
# Windows-1252 and alike
|
|
162
|
-
when
|
|
167
|
+
when /^windows-?(.*)$/
|
|
163
168
|
"Windows-#{$1}"
|
|
164
169
|
|
|
165
|
-
when
|
|
170
|
+
when '8bit'
|
|
166
171
|
Encoding::ASCII_8BIT
|
|
167
172
|
|
|
168
173
|
# alternatives/misspellings of us-ascii seen in the wild
|
|
169
|
-
when /^iso
|
|
174
|
+
when /^iso[-_]?646(-us)?$/, 'us=ascii'
|
|
170
175
|
Encoding::ASCII
|
|
171
176
|
|
|
172
177
|
# Microsoft-specific alias for MACROMAN
|
|
173
|
-
when
|
|
178
|
+
when 'macintosh'
|
|
174
179
|
Encoding::MACROMAN
|
|
175
180
|
|
|
176
181
|
# Microsoft-specific alias for CP949 (Korean)
|
|
@@ -182,12 +187,36 @@ module Mail
|
|
|
182
187
|
Encoding::Shift_JIS
|
|
183
188
|
|
|
184
189
|
# GB2312 (Chinese charset) is a subset of GB18030 (its replacement)
|
|
185
|
-
when
|
|
190
|
+
when 'gb2312'
|
|
186
191
|
Encoding::GB18030
|
|
187
192
|
|
|
193
|
+
when 'cp-850'
|
|
194
|
+
Encoding::CP850
|
|
195
|
+
|
|
196
|
+
when 'latin2'
|
|
197
|
+
Encoding::ISO_8859_2
|
|
198
|
+
|
|
188
199
|
else
|
|
189
200
|
charset
|
|
190
201
|
end
|
|
202
|
+
|
|
203
|
+
convert_to_encoding(encoding)
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
class << self
|
|
207
|
+
private
|
|
208
|
+
|
|
209
|
+
def convert_to_encoding(encoding)
|
|
210
|
+
if encoding.is_a?(Encoding)
|
|
211
|
+
encoding
|
|
212
|
+
else
|
|
213
|
+
begin
|
|
214
|
+
Encoding.find(encoding)
|
|
215
|
+
rescue ArgumentError
|
|
216
|
+
Encoding::BINARY
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
end
|
|
191
220
|
end
|
|
192
221
|
end
|
|
193
222
|
end
|
data/lib/mail.rb
CHANGED
|
@@ -6,7 +6,13 @@ module Mail # :doc:
|
|
|
6
6
|
|
|
7
7
|
require 'uri'
|
|
8
8
|
require 'net/smtp'
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
begin
|
|
11
|
+
# Use mime/types/columnar if available, for reduced memory usage
|
|
12
|
+
require 'mime/types/columnar'
|
|
13
|
+
rescue LoadError
|
|
14
|
+
require 'mime/types'
|
|
15
|
+
end
|
|
10
16
|
|
|
11
17
|
if RUBY_VERSION <= '1.8.6'
|
|
12
18
|
begin
|
|
@@ -26,8 +32,6 @@ module Mail # :doc:
|
|
|
26
32
|
|
|
27
33
|
require 'mail/version'
|
|
28
34
|
|
|
29
|
-
require 'mail/core_extensions/nil'
|
|
30
|
-
require 'mail/core_extensions/object'
|
|
31
35
|
require 'mail/core_extensions/string'
|
|
32
36
|
require 'mail/core_extensions/smtp' if RUBY_VERSION < '1.9.3'
|
|
33
37
|
require 'mail/indifferent_hash'
|
|
@@ -86,6 +90,7 @@ module Mail # :doc:
|
|
|
86
90
|
require 'mail/encodings/unix_to_unix'
|
|
87
91
|
|
|
88
92
|
require 'mail/matchers/has_sent_mail'
|
|
93
|
+
require 'mail/matchers/attachment_matchers.rb'
|
|
89
94
|
|
|
90
95
|
# Finally... require all the Mail.methods
|
|
91
96
|
require 'mail/mail'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mail
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.6.
|
|
4
|
+
version: 2.6.4.rc2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mikel Lindsaar
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2016-01-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mime-types
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: '1.16'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
22
|
+
version: '4'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +29,7 @@ dependencies:
|
|
|
29
29
|
version: '1.16'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '4'
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: bundler
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -64,14 +64,14 @@ dependencies:
|
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 3.0
|
|
67
|
+
version: '3.0'
|
|
68
68
|
type: :development
|
|
69
69
|
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 3.0
|
|
74
|
+
version: '3.0'
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: rdoc
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,8 +110,6 @@ files:
|
|
|
110
110
|
- lib/mail/check_delivery_params.rb
|
|
111
111
|
- lib/mail/configuration.rb
|
|
112
112
|
- lib/mail/constants.rb
|
|
113
|
-
- lib/mail/core_extensions/nil.rb
|
|
114
|
-
- lib/mail/core_extensions/object.rb
|
|
115
113
|
- lib/mail/core_extensions/smtp.rb
|
|
116
114
|
- lib/mail/core_extensions/string.rb
|
|
117
115
|
- lib/mail/core_extensions/string/access.rb
|
|
@@ -182,6 +180,7 @@ files:
|
|
|
182
180
|
- lib/mail/header.rb
|
|
183
181
|
- lib/mail/indifferent_hash.rb
|
|
184
182
|
- lib/mail/mail.rb
|
|
183
|
+
- lib/mail/matchers/attachment_matchers.rb
|
|
185
184
|
- lib/mail/matchers/has_sent_mail.rb
|
|
186
185
|
- lib/mail/message.rb
|
|
187
186
|
- lib/mail/multibyte.rb
|
|
@@ -265,12 +264,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
265
264
|
version: '0'
|
|
266
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
266
|
requirements:
|
|
268
|
-
- - "
|
|
267
|
+
- - ">"
|
|
269
268
|
- !ruby/object:Gem::Version
|
|
270
|
-
version:
|
|
269
|
+
version: 1.3.1
|
|
271
270
|
requirements: []
|
|
272
271
|
rubyforge_project:
|
|
273
|
-
rubygems_version: 2.
|
|
272
|
+
rubygems_version: 2.5.1
|
|
274
273
|
signing_key:
|
|
275
274
|
specification_version: 4
|
|
276
275
|
summary: Mail provides a nice Ruby DSL for making, sending and reading emails.
|