mail 2.6.4.rc2 → 2.6.5
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 +15 -1
- data/Gemfile +7 -4
- data/MIT-LICENSE +1 -1
- data/README.md +5 -2
- data/lib/mail/attachments_list.rb +3 -1
- data/lib/mail/body.rb +1 -0
- data/lib/mail/check_delivery_params.rb +1 -0
- data/lib/mail/configuration.rb +1 -0
- data/lib/mail/constants.rb +1 -0
- data/lib/mail/core_extensions/smtp.rb +1 -0
- data/lib/mail/core_extensions/string/access.rb +1 -0
- data/lib/mail/core_extensions/string/multibyte.rb +1 -0
- data/lib/mail/core_extensions/string.rb +1 -0
- data/lib/mail/elements/address.rb +10 -5
- data/lib/mail/elements/address_list.rb +2 -1
- data/lib/mail/elements/content_disposition_element.rb +1 -0
- data/lib/mail/elements/content_location_element.rb +6 -5
- data/lib/mail/elements/content_transfer_encoding_element.rb +1 -0
- data/lib/mail/elements/content_type_element.rb +1 -0
- data/lib/mail/elements/date_time_element.rb +1 -0
- data/lib/mail/elements/envelope_from_element.rb +1 -0
- data/lib/mail/elements/message_ids_element.rb +7 -5
- data/lib/mail/elements/mime_version_element.rb +1 -0
- data/lib/mail/elements/phrase_list.rb +1 -0
- data/lib/mail/elements/received_element.rb +1 -0
- data/lib/mail/elements.rb +1 -0
- data/lib/mail/encodings/7bit.rb +1 -0
- data/lib/mail/encodings/8bit.rb +1 -0
- data/lib/mail/encodings/base64.rb +1 -0
- data/lib/mail/encodings/binary.rb +1 -0
- data/lib/mail/encodings/quoted_printable.rb +1 -0
- data/lib/mail/encodings/transfer_encoding.rb +1 -0
- data/lib/mail/encodings/unix_to_unix.rb +1 -0
- data/lib/mail/encodings.rb +1 -0
- data/lib/mail/envelope.rb +1 -0
- data/lib/mail/field.rb +1 -0
- data/lib/mail/field_list.rb +1 -0
- data/lib/mail/fields/bcc_field.rb +1 -0
- data/lib/mail/fields/cc_field.rb +1 -0
- data/lib/mail/fields/comments_field.rb +1 -0
- data/lib/mail/fields/common/address_container.rb +3 -2
- data/lib/mail/fields/common/common_address.rb +1 -0
- data/lib/mail/fields/common/common_date.rb +1 -0
- data/lib/mail/fields/common/common_field.rb +4 -1
- data/lib/mail/fields/common/common_message_id.rb +1 -0
- data/lib/mail/fields/common/parameter_hash.rb +1 -0
- data/lib/mail/fields/content_description_field.rb +1 -0
- data/lib/mail/fields/content_disposition_field.rb +2 -1
- data/lib/mail/fields/content_id_field.rb +1 -0
- data/lib/mail/fields/content_location_field.rb +1 -0
- data/lib/mail/fields/content_transfer_encoding_field.rb +1 -0
- data/lib/mail/fields/content_type_field.rb +2 -1
- data/lib/mail/fields/date_field.rb +1 -0
- data/lib/mail/fields/from_field.rb +1 -0
- data/lib/mail/fields/in_reply_to_field.rb +1 -0
- data/lib/mail/fields/keywords_field.rb +1 -0
- data/lib/mail/fields/message_id_field.rb +1 -0
- data/lib/mail/fields/mime_version_field.rb +1 -0
- data/lib/mail/fields/optional_field.rb +1 -0
- data/lib/mail/fields/received_field.rb +1 -0
- data/lib/mail/fields/references_field.rb +1 -0
- data/lib/mail/fields/reply_to_field.rb +1 -0
- data/lib/mail/fields/resent_bcc_field.rb +1 -0
- data/lib/mail/fields/resent_cc_field.rb +1 -0
- data/lib/mail/fields/resent_date_field.rb +1 -0
- data/lib/mail/fields/resent_from_field.rb +1 -0
- data/lib/mail/fields/resent_message_id_field.rb +1 -0
- data/lib/mail/fields/resent_sender_field.rb +1 -0
- data/lib/mail/fields/resent_to_field.rb +1 -0
- data/lib/mail/fields/return_path_field.rb +1 -0
- data/lib/mail/fields/sender_field.rb +1 -0
- data/lib/mail/fields/structured_field.rb +1 -0
- data/lib/mail/fields/subject_field.rb +1 -0
- data/lib/mail/fields/to_field.rb +1 -0
- data/lib/mail/fields/unstructured_field.rb +2 -1
- data/lib/mail/fields.rb +1 -0
- data/lib/mail/header.rb +1 -0
- data/lib/mail/indifferent_hash.rb +1 -0
- data/lib/mail/mail.rb +1 -0
- data/lib/mail/matchers/attachment_matchers.rb +1 -0
- data/lib/mail/matchers/has_sent_mail.rb +1 -0
- data/lib/mail/message.rb +1 -0
- data/lib/mail/multibyte/chars.rb +3 -2
- data/lib/mail/multibyte/exceptions.rb +1 -0
- data/lib/mail/multibyte/unicode.rb +1 -0
- data/lib/mail/multibyte/utils.rb +1 -0
- data/lib/mail/multibyte.rb +1 -0
- data/lib/mail/network/delivery_methods/exim.rb +1 -0
- data/lib/mail/network/delivery_methods/file_delivery.rb +1 -0
- data/lib/mail/network/delivery_methods/sendmail.rb +1 -0
- data/lib/mail/network/delivery_methods/smtp.rb +1 -0
- data/lib/mail/network/delivery_methods/smtp_connection.rb +1 -0
- data/lib/mail/network/delivery_methods/test_mailer.rb +1 -0
- data/lib/mail/network/retriever_methods/base.rb +1 -0
- data/lib/mail/network/retriever_methods/imap.rb +1 -0
- data/lib/mail/network/retriever_methods/pop3.rb +1 -0
- data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
- data/lib/mail/network.rb +1 -0
- data/lib/mail/parsers/address_lists_parser.rb +2 -1
- data/lib/mail/parsers/content_disposition_parser.rb +1 -0
- data/lib/mail/parsers/content_location_parser.rb +1 -0
- data/lib/mail/parsers/content_transfer_encoding_parser.rb +1 -0
- data/lib/mail/parsers/content_type_parser.rb +1 -0
- data/lib/mail/parsers/date_time_parser.rb +3 -0
- data/lib/mail/parsers/envelope_from_parser.rb +1 -0
- data/lib/mail/parsers/message_ids_parser.rb +1 -0
- data/lib/mail/parsers/mime_version_parser.rb +1 -0
- data/lib/mail/parsers/phrase_lists_parser.rb +3 -0
- data/lib/mail/parsers/ragel.rb +1 -0
- data/lib/mail/parsers/received_parser.rb +2 -0
- data/lib/mail/parsers.rb +1 -0
- data/lib/mail/part.rb +1 -0
- data/lib/mail/parts_list.rb +1 -0
- data/lib/mail/utilities.rb +42 -10
- data/lib/mail/version.rb +3 -2
- data/lib/mail/version_specific/ruby_1_8.rb +1 -0
- data/lib/mail/version_specific/ruby_1_9.rb +4 -0
- data/lib/mail.rb +1 -0
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a4283c0737ab7bc528ff6a60317c46e1a2ff0f92
|
|
4
|
+
data.tar.gz: 8f98051e95f99f1622283e76919404d08027b7ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 63514c34ddad591e76cb6704122775906f4d603aad4e90024ec88f17d7f19a78129dfe15d561b2f9e3807bdb074e6269dbdcb09d95656da2399b143e58681cd2
|
|
7
|
+
data.tar.gz: a05cbc7af1c553e062d405b024390c17b03649f280c1c171b278b373401c1843657dc25e316f5041a44fdd3aba19f2a7a44b9d33d0ca9074bab06ed6c86b068d
|
data/CHANGELOG.rdoc
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
==
|
|
1
|
+
== Version 2.6.5 - 2017-04-26 Jeremy Daer <jeremydaer@gmail.com>
|
|
2
|
+
|
|
3
|
+
Features:
|
|
4
|
+
* #1053 - Ruby 2.4.0 compatibility. Fixnum+Bignum unified as Integer. (peterkovacs)
|
|
5
|
+
|
|
6
|
+
Bugs:
|
|
7
|
+
* #605 - Fix Mail::Address#name for nil addresses (peterkovacs)
|
|
8
|
+
* #1003 - Fix decoding some b encoded headers on specific rubies that don't account for lack of base64 padding (kjg)
|
|
9
|
+
* #1023 - Fix double-quoting in display names. (garethrees)
|
|
10
|
+
|
|
11
|
+
== Version 2.6.4 - Wed Mar 23 08:16 -0700 2016 Jeremy Daer <jeremydaer@gmail.com>
|
|
2
12
|
|
|
3
13
|
Features:
|
|
4
14
|
* #772 - Normalize encoding matchers (grosser)
|
|
@@ -11,6 +21,10 @@ Features:
|
|
|
11
21
|
* #901 - Allow mail.text_part = '…' and mail.html_part = '<p>…</p>' (taavo)
|
|
12
22
|
* #924 - Matcher for having attachments (schepedw)
|
|
13
23
|
|
|
24
|
+
Performance:
|
|
25
|
+
* #956 - Use native String#encode for CR/LF conversion (carsonreinke)
|
|
26
|
+
* #970 - Support Ruby 2.3+ frozen string literals (twalpole)
|
|
27
|
+
|
|
14
28
|
Bugs:
|
|
15
29
|
* #719 - Fix to not extract header content that looks like its field name (kjg)
|
|
16
30
|
* #789 - Fix encoding collapsing not dealing with multiple encodings in 1 line (grosser)
|
data/Gemfile
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
|
-
gem
|
|
6
|
-
gem
|
|
5
|
+
gem 'tlsmail', '~> 0.0.1' if RUBY_VERSION <= '1.8.6'
|
|
6
|
+
gem 'jruby-openssl', :platforms => :jruby
|
|
7
|
+
gem 'rake', '< 11.0', :platforms => :ruby_18
|
|
8
|
+
gem 'rdoc', '< 4.3', :platforms => [ :ruby_18, :ruby_19 ]
|
|
9
|
+
gem 'mime-types', '< 2.0', :platforms => [ :ruby_18, :ruby_19 ]
|
|
7
10
|
|
|
8
11
|
# For gems not required to run tests
|
|
9
12
|
group :local_development, :test do
|
|
10
|
-
gem
|
|
13
|
+
gem 'appraisal', '~> 1.0' unless RUBY_VERSION < '1.9'
|
|
11
14
|
end
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -48,9 +48,12 @@ Every Mail commit is tested by Travis on the [following platforms](https://githu
|
|
|
48
48
|
* ruby-1.9.2 [ x86_64 ]
|
|
49
49
|
* ruby-1.9.3 [ x86_64 ]
|
|
50
50
|
* ruby-2.0.0 [ x86_64 ]
|
|
51
|
-
* ruby-2.1.
|
|
51
|
+
* ruby-2.1.10 [ x86_64 ]
|
|
52
|
+
* ruby-2.2.6 [ x86_64 ]
|
|
53
|
+
* ruby-2.3.3 [ x86_64 ]
|
|
52
54
|
* ruby-head [ x86_64 ]
|
|
53
55
|
* jruby [ x86_64 ]
|
|
56
|
+
* jruby-9.1.6.0 [ x86_64 ]
|
|
54
57
|
* jruby-head [ x86_64 ]
|
|
55
58
|
* rbx-2 [ x86_64 ]
|
|
56
59
|
|
|
@@ -697,7 +700,7 @@ License
|
|
|
697
700
|
|
|
698
701
|
(The MIT License)
|
|
699
702
|
|
|
700
|
-
Copyright (c) 2009-
|
|
703
|
+
Copyright (c) 2009-2017 Mikel Lindsaar
|
|
701
704
|
|
|
702
705
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
703
706
|
a copy of this software and associated documentation files (the
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Mail
|
|
2
3
|
class AttachmentsList < Array
|
|
3
4
|
|
|
@@ -29,7 +30,7 @@ module Mail
|
|
|
29
30
|
# mail.attachments['test.png'].filename #=> 'test.png'
|
|
30
31
|
# mail.attachments[1].filename #=> 'test.jpg'
|
|
31
32
|
def [](index_value)
|
|
32
|
-
if index_value.is_a?(
|
|
33
|
+
if index_value.is_a?(Integer)
|
|
33
34
|
self.fetch(index_value)
|
|
34
35
|
else
|
|
35
36
|
self.select { |a| a.filename == index_value }.first
|
|
@@ -71,6 +72,7 @@ module Mail
|
|
|
71
72
|
|
|
72
73
|
if hash[:body].respond_to? :force_encoding and hash[:body].respond_to? :valid_encoding?
|
|
73
74
|
if not hash[:body].valid_encoding? and default_values[:content_transfer_encoding].downcase == "binary"
|
|
75
|
+
hash[:body] = hash[:body].dup if hash[:body].frozen?
|
|
74
76
|
hash[:body].force_encoding("BINARY")
|
|
75
77
|
end
|
|
76
78
|
end
|
data/lib/mail/body.rb
CHANGED
data/lib/mail/configuration.rb
CHANGED
data/lib/mail/constants.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
module Mail
|
|
3
4
|
class Address
|
|
4
5
|
|
|
@@ -92,7 +93,7 @@ module Mail
|
|
|
92
93
|
# a.display_name = 'Mikel Lindsaar'
|
|
93
94
|
# a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
|
94
95
|
def display_name=( str )
|
|
95
|
-
@display_name = str
|
|
96
|
+
@display_name = str.nil? ? nil : str.dup # in case frozen
|
|
96
97
|
end
|
|
97
98
|
|
|
98
99
|
# Returns the local part (the left hand side of the @ sign in the email address) of
|
|
@@ -122,7 +123,12 @@ module Mail
|
|
|
122
123
|
# a.comments #=> ['My email address']
|
|
123
124
|
def comments
|
|
124
125
|
parse unless @parsed
|
|
125
|
-
|
|
126
|
+
comments = get_comments
|
|
127
|
+
if comments.nil? || comments.none?
|
|
128
|
+
nil
|
|
129
|
+
else
|
|
130
|
+
comments.map { |c| c.squeeze(SPACE) }
|
|
131
|
+
end
|
|
126
132
|
end
|
|
127
133
|
|
|
128
134
|
# Sometimes an address will not have a display name, but might have the name
|
|
@@ -204,12 +210,11 @@ module Mail
|
|
|
204
210
|
end
|
|
205
211
|
|
|
206
212
|
def get_display_name
|
|
207
|
-
if @data.display_name
|
|
213
|
+
if @data && @data.display_name
|
|
208
214
|
str = strip_all_comments(@data.display_name.to_s)
|
|
209
|
-
elsif @data.comments && @data.domain
|
|
215
|
+
elsif @data && @data.comments && @data.domain
|
|
210
216
|
str = strip_domain_comments(format_comments)
|
|
211
217
|
end
|
|
212
|
-
|
|
213
218
|
str unless Utilities.blank?(str)
|
|
214
219
|
end
|
|
215
220
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
module Mail
|
|
3
4
|
class AddressList # :nodoc:
|
|
4
5
|
|
|
@@ -19,7 +20,7 @@ module Mail
|
|
|
19
20
|
# a.group_names #=> ["My Group"]
|
|
20
21
|
def initialize(string)
|
|
21
22
|
@addresses_grouped_by_group = nil
|
|
22
|
-
@address_list = Parsers::AddressListsParser.new.parse(string)
|
|
23
|
+
@address_list = Mail::Parsers::AddressListsParser.new.parse(string)
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
# Returns a list of address objects from the parsed line
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
module Mail
|
|
3
4
|
class ContentLocationElement # :nodoc:
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
include Mail::Utilities
|
|
6
|
-
|
|
7
|
+
|
|
7
8
|
def initialize( string )
|
|
8
9
|
content_location = Mail::Parsers::ContentLocationParser.new.parse(string)
|
|
9
10
|
@location = content_location.location
|
|
10
11
|
end
|
|
11
|
-
|
|
12
|
+
|
|
12
13
|
def location
|
|
13
14
|
@location
|
|
14
15
|
end
|
|
15
|
-
|
|
16
|
+
|
|
16
17
|
def to_s(*args)
|
|
17
18
|
location.to_s
|
|
18
19
|
end
|
|
19
|
-
|
|
20
|
+
|
|
20
21
|
end
|
|
21
22
|
end
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
module Mail
|
|
3
4
|
class MessageIdsElement
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
include Mail::Utilities
|
|
6
|
-
|
|
7
|
+
|
|
7
8
|
def initialize(string)
|
|
9
|
+
raise Mail::Field::ParseError.new(Mail::MessageIdsElement, string, 'nil is invalid') if string.nil?
|
|
8
10
|
@message_ids = Mail::Parsers::MessageIdsParser.new.parse(string).message_ids.map { |msg_id| clean_msg_id(msg_id) }
|
|
9
11
|
end
|
|
10
|
-
|
|
12
|
+
|
|
11
13
|
def message_ids
|
|
12
14
|
@message_ids
|
|
13
15
|
end
|
|
14
|
-
|
|
16
|
+
|
|
15
17
|
def message_id
|
|
16
18
|
@message_ids.first
|
|
17
19
|
end
|
|
18
|
-
|
|
20
|
+
|
|
19
21
|
def clean_msg_id( val )
|
|
20
22
|
val =~ /.*<(.*)>.*/ ; $1
|
|
21
23
|
end
|
data/lib/mail/elements.rb
CHANGED
data/lib/mail/encodings/7bit.rb
CHANGED
data/lib/mail/encodings/8bit.rb
CHANGED
data/lib/mail/encodings.rb
CHANGED
data/lib/mail/envelope.rb
CHANGED
data/lib/mail/field.rb
CHANGED
data/lib/mail/field_list.rb
CHANGED
data/lib/mail/fields/cc_field.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
module Mail
|
|
3
4
|
module CommonField # :nodoc:
|
|
4
5
|
include Mail::Constants
|
|
@@ -51,7 +52,9 @@ module Mail
|
|
|
51
52
|
FILENAME_RE = /\b(filename|name)=([^;"\r\n]+\s[^;"\r\n]+)/
|
|
52
53
|
def ensure_filename_quoted(value)
|
|
53
54
|
if value.is_a?(String)
|
|
54
|
-
value.sub
|
|
55
|
+
value.sub FILENAME_RE, '\1="\2"'
|
|
56
|
+
else
|
|
57
|
+
value
|
|
55
58
|
end
|
|
56
59
|
end
|
|
57
60
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'mail/fields/common/parameter_hash'
|
|
3
4
|
|
|
4
5
|
module Mail
|
|
@@ -9,7 +10,7 @@ module Mail
|
|
|
9
10
|
|
|
10
11
|
def initialize(value = nil, charset = 'utf-8')
|
|
11
12
|
self.charset = charset
|
|
12
|
-
ensure_filename_quoted(value)
|
|
13
|
+
value = ensure_filename_quoted(value)
|
|
13
14
|
super(CAPITALIZED_FIELD, strip_field(FIELD_NAME, value), charset)
|
|
14
15
|
self.parse
|
|
15
16
|
self
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
require 'mail/fields/common/parameter_hash'
|
|
3
4
|
|
|
4
5
|
module Mail
|
|
@@ -19,7 +20,7 @@ module Mail
|
|
|
19
20
|
@parameters = nil
|
|
20
21
|
value = strip_field(FIELD_NAME, value)
|
|
21
22
|
end
|
|
22
|
-
ensure_filename_quoted(value)
|
|
23
|
+
value = ensure_filename_quoted(value)
|
|
23
24
|
super(CAPITALIZED_FIELD, value, charset)
|
|
24
25
|
self.parse
|
|
25
26
|
self
|