truemail 3.3.1 → 4.0.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/truemail/validate/mx.rb +10 -1
- data/lib/truemail/validate/smtp.rb +1 -1
- data/lib/truemail/version.rb +1 -1
- data/truemail.gemspec +6 -4
- metadata +8 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ed0e59cea3a673490eafbb863f308069acb63a69ee18a2083ffe975ad9c4ee18
|
|
4
|
+
data.tar.gz: 04fb9537d1060749f68e62a0753d7516fdde823af45840799a17d64fb42ac696
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 79d3fc5ebe271b6c4dd8540f192d98adb7dbb8df4febcd19bd657f462587f7815dc7f0cd6283eac863b111f693b6e1b3df4132f5ce432eeadc53c33c2244f61d
|
|
7
|
+
data.tar.gz: c9088c89aa863e29cf37b7ef917cd653195b36cb075b9302804ff872cec1ff63a6f1fc837776f7a316bba4f7ab95f2a7b2022eba610967021543465e1bdb70f0
|
data/lib/truemail/validate/mx.rb
CHANGED
|
@@ -5,6 +5,7 @@ module Truemail
|
|
|
5
5
|
class Mx < Truemail::Validate::Base
|
|
6
6
|
ERROR = 'target host(s) not found'
|
|
7
7
|
NULL_MX_RECORD = 'null_mx_record'
|
|
8
|
+
IDNA_PREFIX = 'xn--'
|
|
8
9
|
|
|
9
10
|
def run
|
|
10
11
|
return false unless Truemail::Validate::Regex.check(result)
|
|
@@ -15,8 +16,16 @@ module Truemail
|
|
|
15
16
|
|
|
16
17
|
private
|
|
17
18
|
|
|
19
|
+
def email_domain_idn_safe?(result_domain)
|
|
20
|
+
return true if result_domain.ascii_only?
|
|
21
|
+
result_domain.split('.').zip(domain.split('.')).all? do |original_label, ascii_label|
|
|
22
|
+
original_label.ascii_only? || ascii_label.start_with?(Truemail::Validate::Mx::IDNA_PREFIX)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
18
26
|
def email_domain_valid?
|
|
19
|
-
|
|
27
|
+
result_domain = result.domain
|
|
28
|
+
Truemail::RegexConstant::REGEX_DOMAIN_PATTERN.match?(result_domain) && email_domain_idn_safe?(result_domain)
|
|
20
29
|
end
|
|
21
30
|
|
|
22
31
|
def host_extractor_methods
|
data/lib/truemail/version.rb
CHANGED
data/truemail.gemspec
CHANGED
|
@@ -24,20 +24,22 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
|
|
25
25
|
current_ruby_version = ::Gem::Version.new(::RUBY_VERSION)
|
|
26
26
|
ffaker_version = current_ruby_version >= ::Gem::Version.new('3.0.0') ? '~> 2.23' : '~> 2.21'
|
|
27
|
+
webmock_version = current_ruby_version >= ::Gem::Version.new('2.6.0') ? '~> 3.30' : '~> 3.23'
|
|
27
28
|
|
|
28
29
|
spec.required_ruby_version = '>= 2.5.0'
|
|
29
30
|
spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(bin|lib)/|.ruby-version|truemail.gemspec|LICENSE}) }
|
|
30
31
|
spec.require_paths = %w[lib]
|
|
31
32
|
|
|
32
|
-
spec.add_runtime_dependency '
|
|
33
|
+
spec.add_runtime_dependency 'logger', '>= 1.7' if current_ruby_version >= ::Gem::Version.new('4.0.0')
|
|
34
|
+
spec.add_runtime_dependency 'net-smtp', '>= 0.5.2' if current_ruby_version >= ::Gem::Version.new('3.1.0')
|
|
33
35
|
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
|
34
36
|
|
|
35
37
|
spec.add_development_dependency 'dns_mock', '~> 1.7', '>= 1.7.1'
|
|
36
38
|
spec.add_development_dependency 'ffaker', ffaker_version
|
|
37
39
|
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
|
38
|
-
spec.add_development_dependency 'rake', '
|
|
39
|
-
spec.add_development_dependency 'rspec', '
|
|
40
|
+
spec.add_development_dependency 'rake', '>= 13.4.2'
|
|
41
|
+
spec.add_development_dependency 'rspec', '>= 3.13.2'
|
|
40
42
|
spec.add_development_dependency 'smtp_mock', '~> 1.4', '>= 1.4.1'
|
|
41
43
|
spec.add_development_dependency 'truemail-rspec', '~> 1.3', '>= 1.3.1'
|
|
42
|
-
spec.add_development_dependency 'webmock',
|
|
44
|
+
spec.add_development_dependency 'webmock', webmock_version
|
|
43
45
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: truemail
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vladislav Trotsenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-10-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: simpleidn
|
|
@@ -76,36 +76,30 @@ dependencies:
|
|
|
76
76
|
name: rake
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
|
-
- - "~>"
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '13.2'
|
|
82
79
|
- - ">="
|
|
83
80
|
- !ruby/object:Gem::Version
|
|
84
|
-
version: 13.2
|
|
81
|
+
version: 13.4.2
|
|
85
82
|
type: :development
|
|
86
83
|
prerelease: false
|
|
87
84
|
version_requirements: !ruby/object:Gem::Requirement
|
|
88
85
|
requirements:
|
|
89
|
-
- - "~>"
|
|
90
|
-
- !ruby/object:Gem::Version
|
|
91
|
-
version: '13.2'
|
|
92
86
|
- - ">="
|
|
93
87
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: 13.2
|
|
88
|
+
version: 13.4.2
|
|
95
89
|
- !ruby/object:Gem::Dependency
|
|
96
90
|
name: rspec
|
|
97
91
|
requirement: !ruby/object:Gem::Requirement
|
|
98
92
|
requirements:
|
|
99
|
-
- - "
|
|
93
|
+
- - ">="
|
|
100
94
|
- !ruby/object:Gem::Version
|
|
101
|
-
version:
|
|
95
|
+
version: 3.13.2
|
|
102
96
|
type: :development
|
|
103
97
|
prerelease: false
|
|
104
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
99
|
requirements:
|
|
106
|
-
- - "
|
|
100
|
+
- - ">="
|
|
107
101
|
- !ruby/object:Gem::Version
|
|
108
|
-
version:
|
|
102
|
+
version: 3.13.2
|
|
109
103
|
- !ruby/object:Gem::Dependency
|
|
110
104
|
name: smtp_mock
|
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|