mail 2.8.0.rc1 → 2.8.0
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/lib/mail/check_delivery_params.rb +65 -0
- data/lib/mail/message.rb +6 -2
- data/lib/mail/network/delivery_methods/smtp.rb +22 -6
- data/lib/mail/version.rb +1 -1
- data/lib/mail.rb +3 -0
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa5b2d445e65e58dc7c1716cd6f2eebd4f2397548eb1aa1d9230222df09f6aa3
|
4
|
+
data.tar.gz: cae304c28819a9903baf718616f8bb94e2ea860b0b2db43bfb3a3e0f9f12eaac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b72cc59bc03570e9f5347d796e38b6d4365143a7122e7353559314e82b2523479fb5adf90fce65d1d8a5c7e95a97964b2118c082de5b6bb535f663bf4056fa8f
|
7
|
+
data.tar.gz: 64157d336e45117c5e32db4a599ccf97e3b8b6aa2c761b4d5923f18b6b506ee8a20795ce5e9e8494c4d39c7c4784e2317da7674d89ffc75cb5fd6d19f5473073
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# This whole class and associated specs is deprecated and will go away in the version 3 release of mail.
|
4
|
+
module Mail
|
5
|
+
module CheckDeliveryParams #:nodoc:
|
6
|
+
class << self
|
7
|
+
|
8
|
+
extend Gem::Deprecate
|
9
|
+
|
10
|
+
def check(mail)
|
11
|
+
envelope = Mail::SmtpEnvelope.new(mail)
|
12
|
+
[ envelope.from,
|
13
|
+
envelope.to,
|
14
|
+
envelope.message ]
|
15
|
+
end
|
16
|
+
deprecate :check, 'Mail::SmtpEnvelope.new created in commit c106bebea066782a72e4f24dd37b532d95773df7', 2023, 6
|
17
|
+
|
18
|
+
def check_from(addr)
|
19
|
+
mail = Mail.new(from: 'deprecated@example.com', to: 'deprecated@example.com')
|
20
|
+
Mail::SmtpEnvelope.new(mail).send(:validate_addr, 'From', addr)
|
21
|
+
end
|
22
|
+
deprecate :check_from, :none, 2023, 6
|
23
|
+
|
24
|
+
def check_to(addrs)
|
25
|
+
mail = Mail.new(from: 'deprecated@example.com', to: 'deprecated@example.com')
|
26
|
+
Array(addrs).map do |addr|
|
27
|
+
Mail::SmtpEnvelope.new(mail).send(:validate_addr, 'To', addr)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
deprecate :check_to, :none, 2023, 6
|
31
|
+
|
32
|
+
def check_addr(addr_name, addr)
|
33
|
+
mail = Mail.new(from: 'deprecated@example.com', to: 'deprecated@example.com')
|
34
|
+
Mail::SmtpEnvelope.new(mail).send(:validate_addr, addr_name, addr)
|
35
|
+
end
|
36
|
+
deprecate :check_addr, :none, 2023, 6
|
37
|
+
|
38
|
+
def validate_smtp_addr(addr)
|
39
|
+
if addr
|
40
|
+
if addr.bytesize > 2048
|
41
|
+
yield 'may not exceed 2kB'
|
42
|
+
end
|
43
|
+
|
44
|
+
if /[\r\n]/ =~ addr
|
45
|
+
yield 'may not contain CR or LF line breaks'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
addr
|
50
|
+
end
|
51
|
+
deprecate :validate_smtp_addr, :none, 2023, 6
|
52
|
+
|
53
|
+
def check_message(message)
|
54
|
+
message = message.encoded if message.respond_to?(:encoded)
|
55
|
+
|
56
|
+
if Utilities.blank?(message)
|
57
|
+
raise ArgumentError, 'An encoded message is required to send an email'
|
58
|
+
end
|
59
|
+
|
60
|
+
message
|
61
|
+
end
|
62
|
+
deprecate :check_message, :none, 2023, 6
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/mail/message.rb
CHANGED
@@ -1496,7 +1496,7 @@ module Mail
|
|
1496
1496
|
# Returns the character set defined in the content type field
|
1497
1497
|
def charset
|
1498
1498
|
if @header
|
1499
|
-
has_content_type? ? content_type_parameters['charset'] : @charset
|
1499
|
+
has_content_type? && !multipart? ? content_type_parameters['charset'] : @charset
|
1500
1500
|
else
|
1501
1501
|
@charset
|
1502
1502
|
end
|
@@ -2066,7 +2066,11 @@ module Mail
|
|
2066
2066
|
|
2067
2067
|
def add_boundary
|
2068
2068
|
unless body.boundary && boundary
|
2069
|
-
|
2069
|
+
unless header['content-type']
|
2070
|
+
_charset = charset
|
2071
|
+
header['content-type'] = 'multipart/mixed'
|
2072
|
+
header['content-type'].parameters[:charset] = _charset
|
2073
|
+
end
|
2070
2074
|
header['content-type'].parameters[:boundary] = ContentTypeField.generate_boundary
|
2071
2075
|
body.boundary = boundary
|
2072
2076
|
end
|
@@ -111,17 +111,33 @@ module Mail
|
|
111
111
|
|
112
112
|
def build_smtp_session
|
113
113
|
Net::SMTP.new(settings[:address], settings[:port]).tap do |smtp|
|
114
|
-
|
115
|
-
|
114
|
+
tls = settings[:tls] || settings[:ssl]
|
115
|
+
if !tls.nil?
|
116
|
+
case tls
|
117
|
+
when true
|
116
118
|
smtp.enable_tls(ssl_context)
|
119
|
+
when false
|
120
|
+
smtp.disable_tls
|
121
|
+
else
|
122
|
+
raise ArgumentError, "Unrecognized :tls value #{settings[:tls].inspect}; expected true, false, or nil"
|
117
123
|
end
|
118
|
-
elsif settings[:enable_starttls]
|
119
|
-
|
124
|
+
elsif settings.include?(:enable_starttls) && !settings[:enable_starttls].nil?
|
125
|
+
case settings[:enable_starttls]
|
126
|
+
when true
|
120
127
|
smtp.enable_starttls(ssl_context)
|
128
|
+
when false
|
129
|
+
smtp.disable_starttls
|
130
|
+
else
|
131
|
+
raise ArgumentError, "Unrecognized :enable_starttls value #{settings[:enable_starttls].inspect}; expected true, false, or nil"
|
121
132
|
end
|
122
|
-
elsif settings[:enable_starttls_auto]
|
123
|
-
|
133
|
+
elsif settings.include?(:enable_starttls_auto) && !settings[:enable_starttls_auto].nil?
|
134
|
+
case settings[:enable_starttls_auto]
|
135
|
+
when true
|
124
136
|
smtp.enable_starttls_auto(ssl_context)
|
137
|
+
when false
|
138
|
+
smtp.disable_starttls_auto
|
139
|
+
else
|
140
|
+
raise ArgumentError, "Unrecognized :enable_starttls_auto value #{settings[:enable_starttls_auto].inspect}; expected true, false, or nil"
|
125
141
|
end
|
126
142
|
end
|
127
143
|
|
data/lib/mail/version.rb
CHANGED
data/lib/mail.rb
CHANGED
@@ -60,6 +60,9 @@ module Mail # :doc:
|
|
60
60
|
require 'mail/matchers/has_sent_mail'
|
61
61
|
require 'mail/matchers/attachment_matchers.rb'
|
62
62
|
|
63
|
+
# Deprecated will be removed in 3.0 release
|
64
|
+
require 'mail/check_delivery_params'
|
65
|
+
|
63
66
|
# Finally... require all the Mail.methods
|
64
67
|
require 'mail/mail'
|
65
68
|
end
|
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.8.0
|
4
|
+
version: 2.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikel Lindsaar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mini_mime
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/mail.rb
|
163
163
|
- lib/mail/attachments_list.rb
|
164
164
|
- lib/mail/body.rb
|
165
|
+
- lib/mail/check_delivery_params.rb
|
165
166
|
- lib/mail/configuration.rb
|
166
167
|
- lib/mail/constants.rb
|
167
168
|
- lib/mail/elements.rb
|
@@ -309,11 +310,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
309
310
|
version: '2.5'
|
310
311
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
312
|
requirements:
|
312
|
-
- - "
|
313
|
+
- - ">="
|
313
314
|
- !ruby/object:Gem::Version
|
314
|
-
version:
|
315
|
+
version: '0'
|
315
316
|
requirements: []
|
316
|
-
rubygems_version: 3.
|
317
|
+
rubygems_version: 3.1.6
|
317
318
|
signing_key:
|
318
319
|
specification_version: 4
|
319
320
|
summary: Mail provides a nice Ruby DSL for making, sending and reading emails.
|