truemail 2.6.4 → 2.7.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/.circleci/config.yml +14 -6
- data/.circleci/gemspec_compatible +1 -1
- data/.circleci/gemspec_latest +54 -0
- data/.github/DEVELOPMENT_ENVIRONMENT_GUIDE.md +33 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +38 -0
- data/CONTRIBUTING.md +4 -2
- data/README.md +21 -0
- data/lib/truemail/configuration.rb +3 -0
- data/lib/truemail/validate/smtp/request.rb +3 -4
- data/lib/truemail/version.rb +1 -1
- data/truemail.gemspec +2 -11
- metadata +8 -157
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b75d339a9930d00462714943ac421fc747ea7409cb161b55acb152f842e4627
|
4
|
+
data.tar.gz: 4093a63ef17f5f68703ccd31467bd7e9db12bdbdc417a5f33e248bf029b00610
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c543dd3f257723aaaad1ebb4d5ff4400f8060e2330696c567901453c2f486b7e03aab223b1b8b9222f8fba1a9ea0bc792240790678abff1e6926c25decba8010
|
7
|
+
data.tar.gz: 78607aaaa78587589b80bbbbcf590965939d6d26a2c8a747a9abcc31f04690c207a03f6a6f0af4e6d8a9bea3872492789d178464038c54c92bb57d98d6eca8d7
|
data/.circleci/config.yml
CHANGED
@@ -27,9 +27,9 @@ references:
|
|
27
27
|
paths:
|
28
28
|
- vendor/bundle
|
29
29
|
|
30
|
-
|
30
|
+
install_system_dependencies: &install_system_dependencies
|
31
31
|
run:
|
32
|
-
name: Installing system
|
32
|
+
name: Installing system dependencies
|
33
33
|
command: |
|
34
34
|
bundle exec smtp_mock -s -i ~
|
35
35
|
|
@@ -40,9 +40,15 @@ references:
|
|
40
40
|
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
41
41
|
chmod +x ./cc-test-reporter
|
42
42
|
|
43
|
+
use_latest_gemspec: &use_latest_gemspec
|
44
|
+
run:
|
45
|
+
name: Using latest gemspec
|
46
|
+
command: |
|
47
|
+
cp .circleci/gemspec_latest truemail.gemspec
|
48
|
+
|
43
49
|
use_compatible_gemspec: &use_compatible_gemspec
|
44
50
|
run:
|
45
|
-
name:
|
51
|
+
name: Using compatible gemspec
|
46
52
|
command: |
|
47
53
|
cp .circleci/gemspec_compatible truemail.gemspec
|
48
54
|
|
@@ -57,6 +63,7 @@ jobs:
|
|
57
63
|
steps:
|
58
64
|
- checkout
|
59
65
|
|
66
|
+
- <<: *use_latest_gemspec
|
60
67
|
- <<: *restore_bundle_cache
|
61
68
|
- <<: *bundle_install
|
62
69
|
- <<: *save_bundle_cache
|
@@ -77,10 +84,11 @@ jobs:
|
|
77
84
|
steps:
|
78
85
|
- checkout
|
79
86
|
|
87
|
+
- <<: *use_latest_gemspec
|
80
88
|
- <<: *restore_bundle_cache
|
81
89
|
- <<: *bundle_install
|
82
90
|
- <<: *save_bundle_cache
|
83
|
-
- <<: *
|
91
|
+
- <<: *install_system_dependencies
|
84
92
|
- <<: *install_codeclimate_reporter
|
85
93
|
|
86
94
|
- run:
|
@@ -114,10 +122,10 @@ jobs:
|
|
114
122
|
- checkout
|
115
123
|
- <<: *use_compatible_gemspec
|
116
124
|
- ruby/install-deps:
|
117
|
-
bundler-version: "2.3.
|
125
|
+
bundler-version: "2.3.7"
|
118
126
|
with-cache: false
|
119
127
|
path: './vendor/custom_bundle'
|
120
|
-
- <<: *
|
128
|
+
- <<: *install_system_dependencies
|
121
129
|
- run:
|
122
130
|
name: Running compatibility tests
|
123
131
|
command: bundle exec rspec
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
'bug_tracker_uri' => 'https://github.com/truemail-rb/truemail/issues'
|
25
25
|
}
|
26
26
|
|
27
|
-
spec.required_ruby_version = '>= 2.5.0'
|
27
|
+
spec.required_ruby_version = ['>= 2.5.0', '< 3.1.0']
|
28
28
|
|
29
29
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
30
30
|
spec.bindir = 'exe'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'truemail/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'truemail'
|
9
|
+
spec.version = Truemail::VERSION
|
10
|
+
spec.authors = ['Vladislav Trotsenko']
|
11
|
+
spec.email = ['admin@bestweb.com.ua']
|
12
|
+
|
13
|
+
spec.summary = %(truemail)
|
14
|
+
spec.description = %(Configurable framework agnostic plain Ruby email validator. Verify email via Regex, DNS, SMTP and even more.)
|
15
|
+
|
16
|
+
spec.homepage = 'https://github.com/truemail-rb/truemail'
|
17
|
+
spec.license = 'MIT'
|
18
|
+
|
19
|
+
spec.metadata = {
|
20
|
+
'homepage_uri' => 'https://truemail-rb.org',
|
21
|
+
'changelog_uri' => 'https://github.com/truemail-rb/truemail/blob/master/CHANGELOG.md',
|
22
|
+
'source_code_uri' => 'https://github.com/truemail-rb/truemail',
|
23
|
+
'documentation_uri' => 'https://truemail-rb.org/truemail-gem',
|
24
|
+
'bug_tracker_uri' => 'https://github.com/truemail-rb/truemail/issues'
|
25
|
+
}
|
26
|
+
|
27
|
+
spec.required_ruby_version = '>= 2.5.0'
|
28
|
+
|
29
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
30
|
+
spec.bindir = 'exe'
|
31
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
|
32
|
+
spec.require_paths = ['lib']
|
33
|
+
|
34
|
+
spec.add_runtime_dependency 'net-smtp', '~> 0.3.1'
|
35
|
+
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
36
|
+
|
37
|
+
spec.add_development_dependency 'bundler-audit', '~> 0.9.0.1'
|
38
|
+
spec.add_development_dependency 'dns_mock', '~> 1.5', '>= 1.5.1'
|
39
|
+
spec.add_development_dependency 'fasterer', '~> 0.9.0'
|
40
|
+
spec.add_development_dependency 'ffaker', '~> 2.20'
|
41
|
+
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
42
|
+
spec.add_development_dependency 'overcommit', '~> 0.58.0'
|
43
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
44
|
+
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
|
45
|
+
spec.add_development_dependency 'reek', '~> 6.1'
|
46
|
+
spec.add_development_dependency 'rspec', '~> 3.11'
|
47
|
+
spec.add_development_dependency 'rubocop', '~> 1.25', '>= 1.25.1'
|
48
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.13', '>= 1.13.2'
|
49
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.8'
|
50
|
+
spec.add_development_dependency 'simplecov', '~> 0.21.2'
|
51
|
+
spec.add_development_dependency 'smtp_mock', '~> 1.0'
|
52
|
+
spec.add_development_dependency 'truemail-rspec', '~> 0.9.0'
|
53
|
+
spec.add_development_dependency 'webmock', '~> 3.14'
|
54
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Development environment guide
|
2
|
+
|
3
|
+
## Preparing
|
4
|
+
|
5
|
+
Clone `truemail` repository:
|
6
|
+
|
7
|
+
```bash
|
8
|
+
git clone https://github.com/truemail-rb/truemail.git
|
9
|
+
cd truemail
|
10
|
+
```
|
11
|
+
|
12
|
+
Configure latest Ruby environment:
|
13
|
+
|
14
|
+
```bash
|
15
|
+
echo 'ruby-3.1.0' > .ruby-version
|
16
|
+
cp .circleci/gemspec_latest truemail.gemspec
|
17
|
+
```
|
18
|
+
|
19
|
+
## Installing dependencies
|
20
|
+
|
21
|
+
```bash
|
22
|
+
bundle install
|
23
|
+
bundle exec smtp_mock -s -i ~
|
24
|
+
```
|
25
|
+
|
26
|
+
## Commiting
|
27
|
+
|
28
|
+
Commit your changes excluding `.ruby-version`, `truemail.gemspec`
|
29
|
+
|
30
|
+
```bash
|
31
|
+
git add . ':!.ruby-version' ':!truemail.gemspec'
|
32
|
+
git commit -m 'Your new awesome truemail feature'
|
33
|
+
```
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-
|
1
|
+
ruby-2.5.0
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,44 @@
|
|
2
2
|
|
3
3
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
4
4
|
|
5
|
+
## [2.7.0] - 2022.02.23
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- Added ability to specify SMTP port number
|
10
|
+
|
11
|
+
### Updated
|
12
|
+
|
13
|
+
- Updated truemail gemspec
|
14
|
+
- Updated gem version
|
15
|
+
|
16
|
+
## [2.6.6] - 2022.02.09
|
17
|
+
|
18
|
+
### Added
|
19
|
+
|
20
|
+
- Added development environment guide docs
|
21
|
+
|
22
|
+
### Updated
|
23
|
+
|
24
|
+
- Updated truemail gemspec
|
25
|
+
- Updated gem version
|
26
|
+
|
27
|
+
## [2.6.5] - 2022.02.09
|
28
|
+
|
29
|
+
### Added
|
30
|
+
|
31
|
+
- Added gemspec with latest dependencies for latest Ruby env
|
32
|
+
|
33
|
+
### Updated
|
34
|
+
|
35
|
+
- Updated default gemspec, ruby-version
|
36
|
+
- Updated CircleCI Ruby env flow
|
37
|
+
- Updated gem version
|
38
|
+
|
39
|
+
### Fixed
|
40
|
+
|
41
|
+
- Fixed redefining builtin implementations caused using stdlib as external dependencies
|
42
|
+
|
5
43
|
## [2.6.4] - 2022.02.09
|
6
44
|
|
7
45
|
### Fixed
|
data/CONTRIBUTING.md
CHANGED
@@ -42,5 +42,7 @@ Guidelines for pull requests:
|
|
42
42
|
2. Fork the repo, checkout to `develop` branch
|
43
43
|
3. Run the tests. This is to make sure your starting point works
|
44
44
|
4. Read our [branch naming convention](.github/BRANCH_NAMING_CONVENTION.md)
|
45
|
-
5. Create a new branch
|
46
|
-
6.
|
45
|
+
5. Create a new branch
|
46
|
+
6. Read our [setup development environment guide](.github/DEVELOPMENT_ENVIRONMENT_GUIDE.md)
|
47
|
+
7. Make your changes. Please note that your PR should include tests for the new codebase!
|
48
|
+
9. Push to your fork and submit a pull request to `develop` branch
|
data/README.md
CHANGED
@@ -136,6 +136,7 @@ You can use global gem configuration or custom independent configuration. Availa
|
|
136
136
|
- blacklisted mx ip-addresses
|
137
137
|
- custom DNS gateway(s)
|
138
138
|
- RFC MX lookup flow
|
139
|
+
- SMTP port number
|
139
140
|
- SMTP fail fast
|
140
141
|
- SMTP safe check
|
141
142
|
- event logger
|
@@ -221,6 +222,9 @@ Truemail.configure do |config|
|
|
221
222
|
# By default this option is disabled.
|
222
223
|
config.not_rfc_mx_lookup_flow = true
|
223
224
|
|
225
|
+
# Optional parameter. SMTP port number. It is equal to 25 by default.
|
226
|
+
config.smtp_port = 2525
|
227
|
+
|
224
228
|
# Optional parameter. This option will provide to use smtp fail fast behaviour. When
|
225
229
|
# smtp_fail_fast = true it means that Truemail ends smtp validation session after first
|
226
230
|
# attempt on the first mx server in any fail cases (network connection/timeout error,
|
@@ -263,6 +267,7 @@ Truemail.configuration
|
|
263
267
|
@verifier_domain="somedomain.com",
|
264
268
|
@verifier_email="verifier@example.com",
|
265
269
|
@not_rfc_mx_lookup_flow=true,
|
270
|
+
@smtp_port=2525,
|
266
271
|
@smtp_fail_fast=true,
|
267
272
|
@smtp_safe_check=true,
|
268
273
|
@logger=#<Truemail::Logger:0x0000557f837450b0
|
@@ -296,6 +301,7 @@ Truemail.configuration
|
|
296
301
|
@verifier_domain="somedomain.com",
|
297
302
|
@verifier_email="verifier@example.com",
|
298
303
|
@not_rfc_mx_lookup_flow=true,
|
304
|
+
@smtp_port=2525,
|
299
305
|
@smtp_fail_fast=true,
|
300
306
|
@smtp_safe_check=true,
|
301
307
|
@logger=#<Truemail::Logger:0x0000557f837450b0
|
@@ -382,6 +388,7 @@ Truemail.validate('email@white-domain.com')
|
|
382
388
|
@response_timeout=2,
|
383
389
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
384
390
|
@not_rfc_mx_lookup_flow=false,
|
391
|
+
@smtp_port=25,
|
385
392
|
@smtp_fail_fast=false,
|
386
393
|
@smtp_safe_check=false,
|
387
394
|
@validation_type_by_domain={"somedomain.com"=>:mx},
|
@@ -431,6 +438,7 @@ Truemail.validate('email@white-domain.com', with: :regex)
|
|
431
438
|
@response_timeout=2,
|
432
439
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
433
440
|
@not_rfc_mx_lookup_flow=false,
|
441
|
+
@smtp_port=25,
|
434
442
|
@smtp_fail_fast=false,
|
435
443
|
@smtp_safe_check=false,
|
436
444
|
@validation_type_by_domain={},
|
@@ -466,6 +474,7 @@ Truemail.validate('email@domain.com', with: :regex)
|
|
466
474
|
@response_timeout=2,
|
467
475
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
468
476
|
@not_rfc_mx_lookup_flow=false,
|
477
|
+
@smtp_port=25,
|
469
478
|
@smtp_fail_fast=false,
|
470
479
|
@smtp_safe_check=false,
|
471
480
|
@validation_type_by_domain={},
|
@@ -503,6 +512,7 @@ Truemail.validate('email@black-domain.com')
|
|
503
512
|
@response_timeout=2,
|
504
513
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
505
514
|
@not_rfc_mx_lookup_flow=false,
|
515
|
+
@smtp_port=25,
|
506
516
|
@smtp_fail_fast=false,
|
507
517
|
@smtp_safe_check=false,
|
508
518
|
@validation_type_by_domain={},
|
@@ -540,6 +550,7 @@ Truemail.validate('email@somedomain.com')
|
|
540
550
|
@response_timeout=2,
|
541
551
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
542
552
|
@not_rfc_mx_lookup_flow=false,
|
553
|
+
@smtp_port=25,
|
543
554
|
@smtp_fail_fast=false,
|
544
555
|
@smtp_safe_check=false,
|
545
556
|
@validation_type_by_domain={},
|
@@ -594,6 +605,7 @@ Truemail.validate('email@example.com', with: :regex)
|
|
594
605
|
@response_timeout=2,
|
595
606
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
596
607
|
@not_rfc_mx_lookup_flow=false,
|
608
|
+
@smtp_port=25,
|
597
609
|
@smtp_fail_fast=false,
|
598
610
|
@smtp_safe_check=false,
|
599
611
|
@validation_type_by_domain={},
|
@@ -639,6 +651,7 @@ Truemail.validate('email@example.com', with: :regex)
|
|
639
651
|
@response_timeout=2,
|
640
652
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
641
653
|
@not_rfc_mx_lookup_flow=false,
|
654
|
+
@smtp_port=25,
|
642
655
|
@smtp_fail_fast=false,
|
643
656
|
@smtp_safe_check=false,
|
644
657
|
@validation_type_by_domain={},
|
@@ -695,6 +708,7 @@ Truemail.validate('email@example.com', with: :mx)
|
|
695
708
|
@response_timeout=2,
|
696
709
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
697
710
|
@not_rfc_mx_lookup_flow=false,
|
711
|
+
@smtp_port=25,
|
698
712
|
@smtp_fail_fast=false,
|
699
713
|
@smtp_safe_check=false,
|
700
714
|
@validation_type_by_domain={},
|
@@ -742,6 +756,7 @@ Truemail.validate('email@example.com', with: :mx)
|
|
742
756
|
@response_timeout=2,
|
743
757
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
744
758
|
@not_rfc_mx_lookup_flow=true,
|
759
|
+
@smtp_port=25,
|
745
760
|
@smtp_fail_fast=false,
|
746
761
|
@smtp_safe_check=false,
|
747
762
|
@validation_type_by_domain={},
|
@@ -793,6 +808,7 @@ Truemail.validate('email@example.com', with: :mx_blacklist)
|
|
793
808
|
@not_rfc_mx_lookup_flow=false,
|
794
809
|
@response_timeout=2,
|
795
810
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
811
|
+
@smtp_port=25,
|
796
812
|
@smtp_fail_fast=false,
|
797
813
|
@smtp_safe_check=false,
|
798
814
|
@validation_type_by_domain={},
|
@@ -869,6 +885,7 @@ Truemail.validate('email@example.com')
|
|
869
885
|
@not_rfc_mx_lookup_flow=false,
|
870
886
|
@response_timeout=2,
|
871
887
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
888
|
+
@smtp_port=25,
|
872
889
|
@smtp_fail_fast=true,
|
873
890
|
@smtp_safe_check=false,
|
874
891
|
@validation_type_by_domain={},
|
@@ -966,6 +983,7 @@ Truemail.validate('email@example.com')
|
|
966
983
|
@response_timeout=2,
|
967
984
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
968
985
|
@not_rfc_mx_lookup_flow=false,
|
986
|
+
@smtp_port=25,
|
969
987
|
@smtp_fail_fast=false,
|
970
988
|
@smtp_safe_check=false,
|
971
989
|
@validation_type_by_domain={},
|
@@ -1079,6 +1097,7 @@ Truemail.validate('email@example.com')
|
|
1079
1097
|
@response_timeout=2,
|
1080
1098
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
1081
1099
|
@not_rfc_mx_lookup_flow=false,
|
1100
|
+
@smtp_port=25,
|
1082
1101
|
@smtp_fail_fast=false,
|
1083
1102
|
@smtp_safe_check=false,
|
1084
1103
|
@validation_type_by_domain={},
|
@@ -1129,6 +1148,7 @@ Truemail.host_audit
|
|
1129
1148
|
@response_timeout=2,
|
1130
1149
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
1131
1150
|
@not_rfc_mx_lookup_flow=false,
|
1151
|
+
@smtp_port=25,
|
1132
1152
|
@smtp_fail_fast=false,
|
1133
1153
|
@smtp_safe_check=false,
|
1134
1154
|
@validation_type_by_domain={},
|
@@ -1158,6 +1178,7 @@ Truemail.host_audit
|
|
1158
1178
|
@response_timeout=2,
|
1159
1179
|
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
1160
1180
|
@not_rfc_mx_lookup_flow=false,
|
1181
|
+
@smtp_port=25,
|
1161
1182
|
@smtp_fail_fast=false,
|
1162
1183
|
@smtp_safe_check=false,
|
1163
1184
|
@validation_type_by_domain={},
|
@@ -6,6 +6,7 @@ module Truemail
|
|
6
6
|
DEFAULT_RESPONSE_TIMEOUT = 2
|
7
7
|
DEFAULT_CONNECTION_ATTEMPTS = 2
|
8
8
|
DEFAULT_VALIDATION_TYPE = :smtp
|
9
|
+
DEFAULT_SMTP_PORT = 25
|
9
10
|
DEFAULT_LOGGER_OPTIONS = { tracking_event: :error, stdout: false, log_absolute_path: nil }.freeze
|
10
11
|
SETTERS = %i[
|
11
12
|
email_pattern
|
@@ -17,6 +18,7 @@ module Truemail
|
|
17
18
|
blacklisted_domains
|
18
19
|
blacklisted_mx_ip_addresses
|
19
20
|
dns
|
21
|
+
smtp_port
|
20
22
|
].freeze
|
21
23
|
|
22
24
|
attr_reader :verifier_email,
|
@@ -96,6 +98,7 @@ module Truemail
|
|
96
98
|
response_timeout: Truemail::Configuration::DEFAULT_RESPONSE_TIMEOUT,
|
97
99
|
connection_attempts: Truemail::Configuration::DEFAULT_CONNECTION_ATTEMPTS,
|
98
100
|
default_validation_type: Truemail::Configuration::DEFAULT_VALIDATION_TYPE,
|
101
|
+
smtp_port: Truemail::Configuration::DEFAULT_SMTP_PORT,
|
99
102
|
validation_type_by_domain: {},
|
100
103
|
whitelisted_domains: [],
|
101
104
|
whitelist_validation: false,
|
@@ -4,7 +4,6 @@ module Truemail
|
|
4
4
|
module Validate
|
5
5
|
class Smtp
|
6
6
|
class Request
|
7
|
-
SMTP_PORT = 25
|
8
7
|
CONNECTION_TIMEOUT_ERROR = 'connection timed out'
|
9
8
|
RESPONSE_TIMEOUT_ERROR = 'server response timeout'
|
10
9
|
CONNECTION_DROPPED = 'server dropped connection after response'
|
@@ -23,7 +22,7 @@ module Truemail
|
|
23
22
|
def check_port
|
24
23
|
response.port_opened = ::Socket.tcp(
|
25
24
|
host,
|
26
|
-
|
25
|
+
configuration.smtp_port,
|
27
26
|
connect_timeout: configuration.connection_timeout,
|
28
27
|
&port_open_status
|
29
28
|
)
|
@@ -42,7 +41,7 @@ module Truemail
|
|
42
41
|
private
|
43
42
|
|
44
43
|
class Configuration
|
45
|
-
REQUEST_PARAMS = %i[connection_timeout response_timeout verifier_domain verifier_email].freeze
|
44
|
+
REQUEST_PARAMS = %i[smtp_port connection_timeout response_timeout verifier_domain verifier_email].freeze
|
46
45
|
|
47
46
|
def initialize(configuration)
|
48
47
|
Truemail::Validate::Smtp::Request::Configuration::REQUEST_PARAMS.each do |attribute|
|
@@ -96,7 +95,7 @@ module Truemail
|
|
96
95
|
def session
|
97
96
|
Truemail::Validate::Smtp::Request::Session.new(
|
98
97
|
host,
|
99
|
-
|
98
|
+
configuration.smtp_port,
|
100
99
|
configuration.connection_timeout,
|
101
100
|
configuration.response_timeout
|
102
101
|
)
|
data/lib/truemail/version.rb
CHANGED
data/truemail.gemspec
CHANGED
@@ -31,24 +31,15 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
-
spec.add_runtime_dependency 'net-smtp', '~> 0.3' if ::RUBY_VERSION >= '3.1.0'
|
34
|
+
spec.add_runtime_dependency 'net-smtp', '~> 0.3.1' if ::RUBY_VERSION >= '3.1.0'
|
35
35
|
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
36
36
|
|
37
|
-
spec.add_development_dependency 'bundler-audit', '~> 0.9.0.1'
|
38
37
|
spec.add_development_dependency 'dns_mock', '~> 1.5', '>= 1.5.1'
|
39
|
-
spec.add_development_dependency 'fasterer', '~> 0.9.0'
|
40
38
|
spec.add_development_dependency 'ffaker', '~> 2.20'
|
41
39
|
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
42
|
-
spec.add_development_dependency 'overcommit', '~> 0.58.0'
|
43
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
44
40
|
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
|
45
|
-
spec.add_development_dependency 'reek', '~> 6.1'
|
46
41
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
47
|
-
spec.add_development_dependency 'rubocop', '~> 1.25', '>= 1.25.1'
|
48
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.13', '>= 1.13.2'
|
49
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 2.8'
|
50
|
-
spec.add_development_dependency 'simplecov', '~> 0.21.2'
|
51
42
|
spec.add_development_dependency 'smtp_mock', '~> 1.0'
|
52
|
-
spec.add_development_dependency 'truemail-rspec', '~> 0.
|
43
|
+
spec.add_development_dependency 'truemail-rspec', '~> 0.9.0'
|
53
44
|
spec.add_development_dependency 'webmock', '~> 3.14'
|
54
45
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: truemail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladislav Trotsenko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: net-smtp
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.3'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0.3'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: simpleidn
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,20 +24,6 @@ dependencies:
|
|
38
24
|
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: 0.2.1
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: bundler-audit
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.9.0.1
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.9.0.1
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: dns_mock
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,20 +44,6 @@ dependencies:
|
|
72
44
|
- - ">="
|
73
45
|
- !ruby/object:Gem::Version
|
74
46
|
version: 1.5.1
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: fasterer
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: 0.9.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.9.0
|
89
47
|
- !ruby/object:Gem::Dependency
|
90
48
|
name: ffaker
|
91
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,34 +72,6 @@ dependencies:
|
|
114
72
|
- - "~>"
|
115
73
|
- !ruby/object:Gem::Version
|
116
74
|
version: 0.11.1
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: overcommit
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: 0.58.0
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 0.58.0
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: pry-byebug
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '3.9'
|
138
|
-
type: :development
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '3.9'
|
145
75
|
- !ruby/object:Gem::Dependency
|
146
76
|
name: rake
|
147
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,20 +92,6 @@ dependencies:
|
|
162
92
|
- - ">="
|
163
93
|
- !ruby/object:Gem::Version
|
164
94
|
version: 13.0.6
|
165
|
-
- !ruby/object:Gem::Dependency
|
166
|
-
name: reek
|
167
|
-
requirement: !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - "~>"
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: '6.1'
|
172
|
-
type: :development
|
173
|
-
prerelease: false
|
174
|
-
version_requirements: !ruby/object:Gem::Requirement
|
175
|
-
requirements:
|
176
|
-
- - "~>"
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
version: '6.1'
|
179
95
|
- !ruby/object:Gem::Dependency
|
180
96
|
name: rspec
|
181
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,74 +106,6 @@ dependencies:
|
|
190
106
|
- - "~>"
|
191
107
|
- !ruby/object:Gem::Version
|
192
108
|
version: '3.10'
|
193
|
-
- !ruby/object:Gem::Dependency
|
194
|
-
name: rubocop
|
195
|
-
requirement: !ruby/object:Gem::Requirement
|
196
|
-
requirements:
|
197
|
-
- - "~>"
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '1.25'
|
200
|
-
- - ">="
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: 1.25.1
|
203
|
-
type: :development
|
204
|
-
prerelease: false
|
205
|
-
version_requirements: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '1.25'
|
210
|
-
- - ">="
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
version: 1.25.1
|
213
|
-
- !ruby/object:Gem::Dependency
|
214
|
-
name: rubocop-performance
|
215
|
-
requirement: !ruby/object:Gem::Requirement
|
216
|
-
requirements:
|
217
|
-
- - "~>"
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version: '1.13'
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: 1.13.2
|
223
|
-
type: :development
|
224
|
-
prerelease: false
|
225
|
-
version_requirements: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - "~>"
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '1.13'
|
230
|
-
- - ">="
|
231
|
-
- !ruby/object:Gem::Version
|
232
|
-
version: 1.13.2
|
233
|
-
- !ruby/object:Gem::Dependency
|
234
|
-
name: rubocop-rspec
|
235
|
-
requirement: !ruby/object:Gem::Requirement
|
236
|
-
requirements:
|
237
|
-
- - "~>"
|
238
|
-
- !ruby/object:Gem::Version
|
239
|
-
version: '2.8'
|
240
|
-
type: :development
|
241
|
-
prerelease: false
|
242
|
-
version_requirements: !ruby/object:Gem::Requirement
|
243
|
-
requirements:
|
244
|
-
- - "~>"
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
version: '2.8'
|
247
|
-
- !ruby/object:Gem::Dependency
|
248
|
-
name: simplecov
|
249
|
-
requirement: !ruby/object:Gem::Requirement
|
250
|
-
requirements:
|
251
|
-
- - "~>"
|
252
|
-
- !ruby/object:Gem::Version
|
253
|
-
version: 0.21.2
|
254
|
-
type: :development
|
255
|
-
prerelease: false
|
256
|
-
version_requirements: !ruby/object:Gem::Requirement
|
257
|
-
requirements:
|
258
|
-
- - "~>"
|
259
|
-
- !ruby/object:Gem::Version
|
260
|
-
version: 0.21.2
|
261
109
|
- !ruby/object:Gem::Dependency
|
262
110
|
name: smtp_mock
|
263
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,14 +126,14 @@ dependencies:
|
|
278
126
|
requirements:
|
279
127
|
- - "~>"
|
280
128
|
- !ruby/object:Gem::Version
|
281
|
-
version: 0.
|
129
|
+
version: 0.9.0
|
282
130
|
type: :development
|
283
131
|
prerelease: false
|
284
132
|
version_requirements: !ruby/object:Gem::Requirement
|
285
133
|
requirements:
|
286
134
|
- - "~>"
|
287
135
|
- !ruby/object:Gem::Version
|
288
|
-
version: 0.
|
136
|
+
version: 0.9.0
|
289
137
|
- !ruby/object:Gem::Dependency
|
290
138
|
name: webmock
|
291
139
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,8 +158,10 @@ extra_rdoc_files: []
|
|
310
158
|
files:
|
311
159
|
- ".circleci/config.yml"
|
312
160
|
- ".circleci/gemspec_compatible"
|
161
|
+
- ".circleci/gemspec_latest"
|
313
162
|
- ".codeclimate.yml"
|
314
163
|
- ".github/BRANCH_NAMING_CONVENTION.md"
|
164
|
+
- ".github/DEVELOPMENT_ENVIRONMENT_GUIDE.md"
|
315
165
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
316
166
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
317
167
|
- ".github/ISSUE_TEMPLATE/issue_report.md"
|
@@ -389,7 +239,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
389
239
|
- !ruby/object:Gem::Version
|
390
240
|
version: '0'
|
391
241
|
requirements: []
|
392
|
-
|
242
|
+
rubyforge_project:
|
243
|
+
rubygems_version: 2.7.3
|
393
244
|
signing_key:
|
394
245
|
specification_version: 4
|
395
246
|
summary: truemail
|