truemail 1.6.0 → 1.9.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/.codeclimate.yml +1 -1
- data/.reek.yml +4 -0
- data/.rubocop.yml +138 -6
- data/CHANGELOG.md +245 -1
- data/Gemfile.lock +60 -74
- data/README.md +236 -82
- data/lib/truemail.rb +3 -4
- data/lib/truemail/audit/base.rb +8 -0
- data/lib/truemail/audit/dns.rb +26 -0
- data/lib/truemail/audit/ip.rb +28 -0
- data/lib/truemail/audit/ptr.rb +8 -36
- data/lib/truemail/auditor.rb +7 -5
- data/lib/truemail/configuration.rb +3 -4
- data/lib/truemail/core.rb +29 -24
- data/lib/truemail/executor.rb +11 -0
- data/lib/truemail/log/serializer/auditor_json.rb +25 -0
- data/lib/truemail/log/serializer/base.rb +17 -41
- data/lib/truemail/log/serializer/validator_base.rb +45 -0
- data/lib/truemail/log/serializer/{json.rb → validator_json.rb} +1 -1
- data/lib/truemail/log/serializer/{text.rb → validator_text.rb} +2 -2
- data/lib/truemail/logger.rb +1 -1
- data/lib/truemail/validate/mx.rb +1 -0
- data/lib/truemail/validator.rb +3 -3
- data/lib/truemail/version.rb +1 -1
- data/truemail.gemspec +18 -10
- metadata +50 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17a5737519f8156df119dc22788dc19ec53ada84a936806bf55997264450c033
|
4
|
+
data.tar.gz: cf291777e0a45707d9e7e6fb3f27e511600817470262f49a046c5c0af4c7ec36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e9cf660b90669fc65eb5482d571278627602c89e62818b01947f79a7376b4de41fa78bf46aa0b72a0b1194d1d19a4fb34f647d241f295b08e9a36603c18cb0e
|
7
|
+
data.tar.gz: 66986df4338a41c7e5145cca47c3765983fcb04c50e76940ca5dcaec43cb70e6fec5889d8e2d680ac3a8236086d0b2d46d26e498030e8d17a115327ac1fae596
|
data/.codeclimate.yml
CHANGED
data/.reek.yml
CHANGED
@@ -26,6 +26,7 @@ detectors:
|
|
26
26
|
Attribute:
|
27
27
|
exclude:
|
28
28
|
- Truemail::Configuration#whitelist_validation
|
29
|
+
- Truemail::Configuration#not_rfc_mx_lookup_flow
|
29
30
|
- Truemail::Configuration#smtp_safe_check
|
30
31
|
- Truemail::Wrapper#attempts
|
31
32
|
|
@@ -38,6 +39,7 @@ detectors:
|
|
38
39
|
- Truemail::Validate::Mx#a_record
|
39
40
|
- Truemail::Audit::Base#verifier_domain
|
40
41
|
- Truemail::Configuration#domain_matcher
|
42
|
+
- Truemail::Log::Serializer::Base#errors
|
41
43
|
|
42
44
|
ControlParameter:
|
43
45
|
exclude:
|
@@ -54,6 +56,8 @@ detectors:
|
|
54
56
|
- Truemail::ConfigurationHelper#create_configuration
|
55
57
|
- Truemail::Log::Serializer::Base#smtp_debug
|
56
58
|
- Truemail::Log::Serializer::Text#data_composer
|
59
|
+
- Truemail::Log::Serializer::ValidatorBase#smtp_debug
|
60
|
+
- Truemail::Log::Serializer::ValidatorText#data_composer
|
57
61
|
|
58
62
|
NilCheck:
|
59
63
|
exclude:
|
data/.rubocop.yml
CHANGED
@@ -40,6 +40,69 @@ Style/EmptyCaseCondition:
|
|
40
40
|
Style/RescueStandardError:
|
41
41
|
Enabled: false
|
42
42
|
|
43
|
+
Style/AccessorGrouping:
|
44
|
+
Enabled: true
|
45
|
+
|
46
|
+
Style/ArrayCoercion:
|
47
|
+
Enabled: true
|
48
|
+
|
49
|
+
Style/BisectedAttrAccessor:
|
50
|
+
Enabled: true
|
51
|
+
|
52
|
+
Style/CaseLikeIf:
|
53
|
+
Enabled: true
|
54
|
+
|
55
|
+
Style/ExplicitBlockArgument:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
Style/ExponentialNotation:
|
59
|
+
Enabled: true
|
60
|
+
|
61
|
+
Style/GlobalStdStream:
|
62
|
+
Enabled: true
|
63
|
+
|
64
|
+
Style/HashAsLastArrayItem:
|
65
|
+
Enabled: true
|
66
|
+
|
67
|
+
Style/HashEachMethods:
|
68
|
+
Enabled: true
|
69
|
+
|
70
|
+
Style/HashLikeCase:
|
71
|
+
Enabled: true
|
72
|
+
|
73
|
+
Style/HashTransformKeys:
|
74
|
+
Enabled: true
|
75
|
+
|
76
|
+
Style/HashTransformValues:
|
77
|
+
Enabled: true
|
78
|
+
|
79
|
+
Style/OptionalBooleanParameter:
|
80
|
+
Enabled: true
|
81
|
+
|
82
|
+
Style/RedundantAssignment:
|
83
|
+
Enabled: true
|
84
|
+
|
85
|
+
Style/RedundantFetchBlock:
|
86
|
+
Enabled: true
|
87
|
+
|
88
|
+
Style/RedundantFileExtensionInRequire:
|
89
|
+
Enabled: true
|
90
|
+
|
91
|
+
Style/RedundantRegexpCharacterClass:
|
92
|
+
Enabled: true
|
93
|
+
|
94
|
+
Style/RedundantRegexpEscape:
|
95
|
+
Enabled: true
|
96
|
+
|
97
|
+
Style/SingleArgumentDig:
|
98
|
+
Enabled: true
|
99
|
+
|
100
|
+
Style/SlicingWithRange:
|
101
|
+
Enabled: true
|
102
|
+
|
103
|
+
Style/StringConcatenation:
|
104
|
+
Enabled: true
|
105
|
+
|
43
106
|
Layout/LineLength:
|
44
107
|
Max: 140
|
45
108
|
|
@@ -50,15 +113,9 @@ Layout/ClassStructure:
|
|
50
113
|
- include
|
51
114
|
- prepend
|
52
115
|
- extend
|
53
|
-
associations:
|
54
|
-
- has_one
|
55
|
-
- has_many
|
56
|
-
- belongs_to
|
57
|
-
- has_and_belongs_to_many
|
58
116
|
ExpectedOrder:
|
59
117
|
- module_inclusion
|
60
118
|
- constants
|
61
|
-
- associations
|
62
119
|
- public_class_methods
|
63
120
|
- initializer
|
64
121
|
- public_methods
|
@@ -68,9 +125,81 @@ Layout/ClassStructure:
|
|
68
125
|
Layout/EmptyLineAfterGuardClause:
|
69
126
|
Enabled: false
|
70
127
|
|
128
|
+
Layout/SpaceAroundMethodCallOperator:
|
129
|
+
Enabled: true
|
130
|
+
|
131
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
132
|
+
Enabled: true
|
133
|
+
|
71
134
|
Lint/NonDeterministicRequireOrder:
|
72
135
|
Enabled: false
|
73
136
|
|
137
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
138
|
+
Enabled: true
|
139
|
+
|
140
|
+
Lint/DeprecatedOpenSSLConstant:
|
141
|
+
Enabled: true
|
142
|
+
|
143
|
+
Lint/DuplicateElsifCondition:
|
144
|
+
Enabled: true
|
145
|
+
|
146
|
+
Lint/DuplicateRescueException:
|
147
|
+
Enabled: true
|
148
|
+
|
149
|
+
Lint/EmptyConditionalBody:
|
150
|
+
Enabled: true
|
151
|
+
|
152
|
+
Lint/FloatComparison:
|
153
|
+
Enabled: true
|
154
|
+
|
155
|
+
Lint/MissingSuper:
|
156
|
+
Enabled: false
|
157
|
+
|
158
|
+
Lint/MixedRegexpCaptureTypes:
|
159
|
+
Enabled: true
|
160
|
+
|
161
|
+
Lint/OutOfRangeRegexpRef:
|
162
|
+
Enabled: true
|
163
|
+
|
164
|
+
Lint/RaiseException:
|
165
|
+
Enabled: true
|
166
|
+
|
167
|
+
Lint/SelfAssignment:
|
168
|
+
Enabled: true
|
169
|
+
|
170
|
+
Lint/StructNewOverride:
|
171
|
+
Enabled: true
|
172
|
+
|
173
|
+
Lint/TopLevelReturnWithArgument:
|
174
|
+
Enabled: true
|
175
|
+
|
176
|
+
Lint/UnreachableLoop:
|
177
|
+
Enabled: true
|
178
|
+
|
179
|
+
Performance/AncestorsInclude:
|
180
|
+
Enabled: true
|
181
|
+
|
182
|
+
Performance/BigDecimalWithNumericArgument:
|
183
|
+
Enabled: true
|
184
|
+
|
185
|
+
Performance/RedundantSortBlock:
|
186
|
+
Enabled: true
|
187
|
+
|
188
|
+
Performance/RedundantStringChars:
|
189
|
+
Enabled: true
|
190
|
+
|
191
|
+
Performance/ReverseFirst:
|
192
|
+
Enabled: true
|
193
|
+
|
194
|
+
Performance/SortReverse:
|
195
|
+
Enabled: true
|
196
|
+
|
197
|
+
Performance/Squeeze:
|
198
|
+
Enabled: true
|
199
|
+
|
200
|
+
Performance/StringInclude:
|
201
|
+
Enabled: true
|
202
|
+
|
74
203
|
RSpec/ExampleLength:
|
75
204
|
Enabled: false
|
76
205
|
|
@@ -94,3 +223,6 @@ RSpec/MessageSpies:
|
|
94
223
|
|
95
224
|
RSpec/MultipleDescribes:
|
96
225
|
Enabled: false
|
226
|
+
|
227
|
+
RSpec/MultipleMemoizedHelpers:
|
228
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,24 +1,204 @@
|
|
1
1
|
# Changelog
|
2
|
+
|
2
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).
|
3
4
|
|
5
|
+
## [1.9.0] - 2020.09.01
|
6
|
+
|
7
|
+
## Added
|
8
|
+
|
9
|
+
- Ability to use `Truemail::Auditor` instance represented as json directly
|
10
|
+
- `Truemail::Log::Serializer::AuditorJson`
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
|
14
|
+
- `Truemail::Auditor`, `Truemail::Validator`
|
15
|
+
- serializers namespaces
|
16
|
+
- gem development dependencies
|
17
|
+
- gem documentation
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
Truemail.host_audit.as_json
|
21
|
+
|
22
|
+
=>
|
23
|
+
# Serialized Truemail::Auditor instance
|
24
|
+
{
|
25
|
+
"date": "2020-08-31 22:33:43 +0300",
|
26
|
+
"current_host_ip": "127.0.0.1",
|
27
|
+
"warnings": {
|
28
|
+
"dns": "A-record of verifier domain not refers to current host ip address", "ptr": "PTR-record does not reference to current verifier domain"
|
29
|
+
},
|
30
|
+
"configuration": {
|
31
|
+
"validation_type_by_domain": null,
|
32
|
+
"whitelist_validation": false,
|
33
|
+
"whitelisted_domains": null,
|
34
|
+
"blacklisted_domains": null,
|
35
|
+
"not_rfc_mx_lookup_flow": false,
|
36
|
+
"smtp_safe_check": false,
|
37
|
+
"email_pattern": "default gem value",
|
38
|
+
"smtp_error_body_pattern": "default gem value"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
```
|
42
|
+
|
43
|
+
## [1.8.0] - 2020.06.21
|
44
|
+
|
45
|
+
## Added
|
46
|
+
|
47
|
+
Separated audit features for verifier host.
|
48
|
+
|
49
|
+
- `Truemail::Audit::Ip`
|
50
|
+
- `Truemail::Audit::Dns`
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
Truemail.host_audit
|
54
|
+
|
55
|
+
=> #<Truemail::Auditor:0x00005580df358828
|
56
|
+
@result=
|
57
|
+
#<struct Truemail::Auditor::Result
|
58
|
+
current_host_ip="127.0.0.1",
|
59
|
+
warnings={
|
60
|
+
:dns=>"a record of verifier domain not refers to current host ip address",
|
61
|
+
:ptr=>"ptr record does not reference to current verifier domain"
|
62
|
+
},
|
63
|
+
configuration=
|
64
|
+
#<Truemail::Configuration:0x00005615e86327a8
|
65
|
+
@blacklisted_domains=[],
|
66
|
+
@connection_attempts=2,
|
67
|
+
@connection_timeout=2,
|
68
|
+
@default_validation_type=:smtp,
|
69
|
+
@email_pattern=/(?=\A.{6,255}\z)(\A([\p{L}0-9]+[\w|\-|\.|\+]*)@((?i-mx:[\p{L}0-9]+([\-\.]{1}[\p{L}0-9]+)*\.[\p{L}]{2,63}))\z)/,
|
70
|
+
@response_timeout=2,
|
71
|
+
@smtp_error_body_pattern=/(?=.*550)(?=.*(user|account|customer|mailbox)).*/i,
|
72
|
+
@not_rfc_mx_lookup_flow=false,
|
73
|
+
@smtp_safe_check=false,
|
74
|
+
@validation_type_by_domain={},
|
75
|
+
@verifier_domain="example.com",
|
76
|
+
@verifier_email="verifier@example.com",
|
77
|
+
@whitelist_validation=false,
|
78
|
+
@whitelisted_domains=[]>
|
79
|
+
```
|
80
|
+
|
81
|
+
### Changed
|
82
|
+
|
83
|
+
- `Truemail::Auditor`
|
84
|
+
- `Truemail::Auditor::Result`
|
85
|
+
- `Truemail::Audit::Base`
|
86
|
+
- `Truemail::Audit::Ptr`
|
87
|
+
- `Truemail::VERSION`
|
88
|
+
- gem documentation
|
89
|
+
|
90
|
+
## [1.7.1] - 2020.05.10
|
91
|
+
|
92
|
+
## Added
|
93
|
+
|
94
|
+
- Ability to show `not_rfc_mx_lookup_flow` attribute in serialized validation result
|
95
|
+
|
96
|
+
```ruby
|
97
|
+
Truemail.validate('nonexistent_email@bestweb.com.ua').as_json
|
98
|
+
|
99
|
+
=>
|
100
|
+
# Serialized Truemail::Validator instance
|
101
|
+
{
|
102
|
+
"date": "2020-05-10 10:00:00 +0200",
|
103
|
+
"email": "nonexistent_email@bestweb.com.ua",
|
104
|
+
"validation_type": "smtp",
|
105
|
+
"success": false,
|
106
|
+
"errors": {
|
107
|
+
"smtp": "smtp error"
|
108
|
+
},
|
109
|
+
"smtp_debug": [
|
110
|
+
{
|
111
|
+
"mail_host": "213.180.193.89",
|
112
|
+
"port_opened": true,
|
113
|
+
"connection": true,
|
114
|
+
"errors": {
|
115
|
+
"rcptto": "550 5.7.1 No such user!\n"
|
116
|
+
}
|
117
|
+
}
|
118
|
+
],
|
119
|
+
"configuration": {
|
120
|
+
"validation_type_by_domain": null,
|
121
|
+
"whitelist_validation": false,
|
122
|
+
"whitelisted_domains": null,
|
123
|
+
"blacklisted_domains": null,
|
124
|
+
"not_rfc_mx_lookup_flow": false,
|
125
|
+
"smtp_safe_check": false,
|
126
|
+
"email_pattern": "default gem value",
|
127
|
+
"smtp_error_body_pattern": "default gem value"
|
128
|
+
}
|
129
|
+
}
|
130
|
+
```
|
131
|
+
|
132
|
+
### Changed
|
133
|
+
|
134
|
+
- `Truemail::Log::Serializer::Base`
|
135
|
+
- `Truemail::VERSION`
|
136
|
+
- gem documentation
|
137
|
+
|
138
|
+
## [1.7.0] - 2020.05.09
|
139
|
+
|
140
|
+
## Added
|
141
|
+
|
142
|
+
- Ability to use not RFC MX lookup flow (MX and Null MX records will be checked on the DNS validation layer only)
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
Truemail.configure do |config|
|
146
|
+
# Optional parameter. This option will provide to use not RFC MX lookup flow.
|
147
|
+
# It means that MX and Null MX records will be cheked on the DNS validation layer only.
|
148
|
+
# By default this option is disabled.
|
149
|
+
config.not_rfc_mx_lookup_flow = true
|
150
|
+
end
|
151
|
+
```
|
152
|
+
|
153
|
+
### Changed
|
154
|
+
|
155
|
+
- `Truemail.configuration`
|
156
|
+
- `Truemail::Validate::Mx`
|
157
|
+
- `Truemail::VERSION`
|
158
|
+
- gem development dependencies
|
159
|
+
- gem documentation
|
160
|
+
|
161
|
+
## [1.6.1] - 2020.03.23
|
162
|
+
|
163
|
+
### Changed
|
164
|
+
|
165
|
+
- `Truemail.configuration`
|
166
|
+
- `Truemail::ArgumentError`
|
167
|
+
- `Truemail::Audit::Ptr`
|
168
|
+
- `Truemail::VERSION`
|
169
|
+
- gem development dependencies
|
170
|
+
- gem documentation
|
171
|
+
|
172
|
+
### Removed
|
173
|
+
|
174
|
+
`Truemail::Configuration.retry_count` deprecated, and alias for this method has been removed. Please use `Truemail::Configuration.connection_attempts` instead.
|
175
|
+
|
4
176
|
## [1.6.0] - 2020-02-01
|
177
|
+
|
5
178
|
### Added
|
6
|
-
|
179
|
+
|
180
|
+
- Ability to use `Truemail::Validator` instance represented as json directly
|
7
181
|
|
8
182
|
### Changed
|
183
|
+
|
9
184
|
- gem development dependencies
|
10
185
|
- gem documentation
|
11
186
|
|
12
187
|
## [1.5.1] - 2020-01-20
|
188
|
+
|
13
189
|
### Changed
|
190
|
+
|
14
191
|
- gem development dependencies
|
15
192
|
- gem documentation
|
16
193
|
|
17
194
|
## [1.5.0] - 2019-12-29
|
195
|
+
|
18
196
|
### Added
|
197
|
+
|
19
198
|
- Supporting of internationalized emails ([EAI](https://en.wikipedia.org/wiki/International_email)). Now you can validate emails, like: `dörte@sörensen.de`, `квіточка@пошта.укр`, `alegría@mañana.es`
|
20
199
|
|
21
200
|
### Changed
|
201
|
+
|
22
202
|
- `Truemail::RegexConstant::REGEX_DOMAIN`
|
23
203
|
- `Truemail::RegexConstant::REGEX_EMAIL_PATTERN`
|
24
204
|
- `Truemail::Validator::Result`
|
@@ -30,22 +210,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
30
210
|
- linters configs
|
31
211
|
|
32
212
|
## [1.4.2] - 2019-11-27
|
213
|
+
|
33
214
|
### Changed
|
215
|
+
|
34
216
|
- `Truemail::Configuration`
|
35
217
|
- gem development dependencies
|
36
218
|
- linters configs
|
37
219
|
|
38
220
|
## [1.4.1] - 2019-11-20
|
221
|
+
|
39
222
|
### Changed
|
223
|
+
|
40
224
|
- gem development dependencies
|
41
225
|
- gem documentation
|
42
226
|
- linters configs
|
43
227
|
|
44
228
|
### Removed
|
229
|
+
|
45
230
|
- truemail rspec helpers (moved to independent gem [`truemail-rspec`](https://github.com/truemail-rb/truemail-rspec))
|
46
231
|
|
47
232
|
## [1.4.0] - 2019-10-28
|
233
|
+
|
48
234
|
### Added
|
235
|
+
|
49
236
|
- Event logger (ability to output validation logs to stdout/file)
|
50
237
|
- JSON serializer for validator instance
|
51
238
|
- [Changelog](CHANGELOG.md)
|
@@ -73,6 +260,7 @@ Truemail::Log::Serializer::Json.call(Truemail.validate('nonexistent_email@bestwe
|
|
73
260
|
```
|
74
261
|
|
75
262
|
### Changed
|
263
|
+
|
76
264
|
- `Truemail::Configuration`
|
77
265
|
- `Truemail::Validator`
|
78
266
|
- `Truemail::Validate::Regex`
|
@@ -81,11 +269,14 @@ Truemail::Log::Serializer::Json.call(Truemail.validate('nonexistent_email@bestwe
|
|
81
269
|
- gem description
|
82
270
|
|
83
271
|
## [1.3.0] - 2019-09-16
|
272
|
+
|
84
273
|
### Added
|
274
|
+
|
85
275
|
- Ability to create new `Truemail::Configuration` instance with block
|
86
276
|
- `Truemail::Validate::Smtp::Request::Configuration`
|
87
277
|
|
88
278
|
### Changed
|
279
|
+
|
89
280
|
- `Truemail::Wrapper`
|
90
281
|
- `Truemail::Validate::Base`
|
91
282
|
- `Truemail::Validator`
|
@@ -103,15 +294,20 @@ Truemail::Log::Serializer::Json.call(Truemail.validate('nonexistent_email@bestwe
|
|
103
294
|
- gem description
|
104
295
|
|
105
296
|
## [1.2.1] - 2019-06-27
|
297
|
+
|
106
298
|
### Fixed
|
299
|
+
|
107
300
|
- Removed memoization from ```DomainListMatch#whitelisted_domain?```
|
108
301
|
|
109
302
|
### Changed
|
303
|
+
|
110
304
|
- `Truemail::VERSION`
|
111
305
|
- gem documentation
|
112
306
|
|
113
307
|
## [1.2.0] - 2019-06-26
|
308
|
+
|
114
309
|
### Added
|
310
|
+
|
115
311
|
- Configurable option: validation for whitelisted domains only.
|
116
312
|
|
117
313
|
When email domain in whitelist and ```whitelist_validation``` is sets equal to ```true``` validation type will be passed to other validators. Validation of email which not contains whitelisted domain always will return ```false```.
|
@@ -156,11 +352,14 @@ Truemail.validate('email@domain.com', with: :regex)
|
|
156
352
|
```
|
157
353
|
|
158
354
|
### Changed
|
355
|
+
|
159
356
|
- `Truemail::VERSION`
|
160
357
|
- gem documentation
|
161
358
|
|
162
359
|
## [1.1.0] - 2019-06-18
|
360
|
+
|
163
361
|
### Added
|
362
|
+
|
164
363
|
- Configurable default validation type, [issue details](https://github.com/rubygarage/truemail/issues/48)
|
165
364
|
|
166
365
|
You can predefine default validation type for ```Truemail.validate('email@email.com')``` call without with-parameter. Available validation types: ```:regex```, ```:mx```, ```:smtp```. By default validation type still remains ```:smtp```
|
@@ -173,11 +372,14 @@ end
|
|
173
372
|
```
|
174
373
|
|
175
374
|
### Changed
|
375
|
+
|
176
376
|
- `Truemail::VERSION`
|
177
377
|
- gem documentation
|
178
378
|
|
179
379
|
## [1.0.1] - 2019-06-08
|
380
|
+
|
180
381
|
### Added
|
382
|
+
|
181
383
|
- Result validation type marker for domain list match check
|
182
384
|
|
183
385
|
```ruby
|
@@ -207,11 +409,14 @@ Truemail.validate('email@black-domain.com')
|
|
207
409
|
```
|
208
410
|
|
209
411
|
### Changed
|
412
|
+
|
210
413
|
- `Truemail::VERSION`
|
211
414
|
- gem documentation
|
212
415
|
|
213
416
|
## [1.0] - 2019-06-04
|
417
|
+
|
214
418
|
### Added
|
419
|
+
|
215
420
|
- Feature domain whitelist blacklist. Other validations will not processed even if it was defined in ```validation_type_for```.
|
216
421
|
|
217
422
|
```ruby
|
@@ -225,6 +430,7 @@ Truemail.configure do |config|
|
|
225
430
|
config.blacklisted_domains = ['somedomain1.com', 'somedomain2.com']
|
226
431
|
end
|
227
432
|
```
|
433
|
+
|
228
434
|
and
|
229
435
|
|
230
436
|
```ruby
|
@@ -233,17 +439,22 @@ Truemail.configuration.blacklisted_domains = ['somedomain1.com', 'somedomain2.co
|
|
233
439
|
```
|
234
440
|
|
235
441
|
### Removed
|
442
|
+
|
236
443
|
- ```:skip``` validation type for ```validation_type_for```
|
237
444
|
|
238
445
|
### Fixed
|
446
|
+
|
239
447
|
- error key in `lower_snake_case`
|
240
448
|
|
241
449
|
### Changed
|
450
|
+
|
242
451
|
- `Truemail::VERSION`
|
243
452
|
- gem documentation
|
244
453
|
|
245
454
|
## [0.2] - 2019-05-23
|
455
|
+
|
246
456
|
### Added
|
457
|
+
|
247
458
|
- skip validation by domain for validation_type_for configuration option:
|
248
459
|
|
249
460
|
```ruby
|
@@ -251,68 +462,93 @@ Truemail.configure do |config|
|
|
251
462
|
config.validation_type_for = { 'somedomain.com' => :skip }
|
252
463
|
end
|
253
464
|
```
|
465
|
+
|
254
466
|
and
|
467
|
+
|
255
468
|
```ruby
|
256
469
|
Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
|
257
470
|
```
|
471
|
+
|
258
472
|
### Changed
|
473
|
+
|
259
474
|
- `Truemail::VERSION`
|
260
475
|
- gem documentation
|
261
476
|
|
262
477
|
## [0.1.10] - 2019-05-10
|
478
|
+
|
263
479
|
### Added
|
480
|
+
|
264
481
|
- SMTP error body configurable option, [issue details](https://github.com/rubygarage/truemail/issues/19)
|
265
482
|
|
266
483
|
### Changed
|
484
|
+
|
267
485
|
- `Truemail::VERSION`
|
268
486
|
- gem documentation
|
269
487
|
|
270
488
|
## [0.1.9] - 2019-04-29
|
489
|
+
|
271
490
|
### Fixed
|
491
|
+
|
272
492
|
- Empty ptr constant
|
273
493
|
|
274
494
|
## [0.1.8] - 2019-04-29
|
495
|
+
|
275
496
|
### Added
|
497
|
+
|
276
498
|
- Reverse trace, [issue details](https://github.com/rubygarage/truemail/issues/18)
|
277
499
|
|
278
500
|
### Fixed
|
501
|
+
|
279
502
|
- Behaviour of current host address resolver, [issue details](https://github.com/rubygarage/truemail/issues/18)
|
280
503
|
|
281
504
|
### Changed
|
505
|
+
|
282
506
|
- `Truemail::VERSION`
|
283
507
|
- gem documentation
|
284
508
|
|
285
509
|
## [0.1.7] - 2019-04-17
|
510
|
+
|
286
511
|
### Added
|
512
|
+
|
287
513
|
- PTR record audit, [issue details](https://github.com/rubygarage/truemail/issues/18)
|
288
514
|
|
289
515
|
### Changed
|
516
|
+
|
290
517
|
- `Truemail::VERSION`
|
291
518
|
- gem documentation
|
292
519
|
|
293
520
|
## [0.1.6] - 2019-04-08
|
521
|
+
|
294
522
|
### Added
|
523
|
+
|
295
524
|
- MX gem logic with [RFC 7505](https://tools.ietf.org/html/rfc7505), null MX record supporting, [issue details](https://github.com/rubygarage/truemail/issues/27)
|
296
525
|
- [Contributing guideline](CONTRIBUTING.md)
|
297
526
|
|
298
527
|
### Fixed
|
528
|
+
|
299
529
|
- Multihomed MX records supporting, [issue details](https://github.com/rubygarage/truemail/issues/28)
|
300
530
|
|
301
531
|
### Changed
|
532
|
+
|
302
533
|
- `Truemail::VERSION`
|
303
534
|
- gem documentation
|
304
535
|
|
305
536
|
## [0.1.5] - 2019-04-05
|
537
|
+
|
306
538
|
### Added
|
539
|
+
|
307
540
|
- Retries for ```Truemail::Validate::Smtp``` for cases when one mx server
|
308
541
|
|
309
542
|
### Changed
|
543
|
+
|
310
544
|
- ```Truemail::Configuration``` class, please use ```.connection_attempts``` instead ```.retry_count```
|
311
545
|
- `Truemail::VERSION`
|
312
546
|
- gem documentation
|
313
547
|
|
314
548
|
## [0.1.4] - 2019-04-01
|
549
|
+
|
315
550
|
### Added
|
551
|
+
|
316
552
|
- Checking A record presence if ```MX``` and ```CNAME``` records not exist, [issue details](https://github.com/rubygarage/truemail/issues/10)
|
317
553
|
- Handling of ```CNAME``` records, [issue details](https://github.com/rubygarage/truemail/issues/11)
|
318
554
|
- Checking A record if ```MX``` and ```CNAME``` records not found, [issue details](https://github.com/rubygarage/truemail/issues/12)
|
@@ -321,14 +557,18 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
|
|
321
557
|
- ```.valid?``` helper
|
322
558
|
|
323
559
|
### Changed
|
560
|
+
|
324
561
|
- `Truemail::VERSION`
|
325
562
|
- gem documentation
|
326
563
|
|
327
564
|
## [0.1.3] - 2019-03-27
|
565
|
+
|
328
566
|
### Added
|
567
|
+
|
329
568
|
- Independent domain name extractor to ```Truemail::Validate::Mx#run```
|
330
569
|
|
331
570
|
### Fixed
|
571
|
+
|
332
572
|
- Default ```REGEX_EMAIL_PATTERN```, [issue details](https://github.com/rubygarage/truemail/issues/7)
|
333
573
|
* local part of address can't start with a dot or special symbol
|
334
574
|
* local part of address can include ```+``` symbol
|
@@ -337,11 +577,14 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
|
|
337
577
|
- Case sensitive domain names, [issue details](https://github.com/rubygarage/truemail/issues/9)
|
338
578
|
|
339
579
|
### Changed
|
580
|
+
|
340
581
|
- `Truemail::VERSION`
|
341
582
|
- gem documentation
|
342
583
|
|
343
584
|
## [0.1.0] - 2019-03-26
|
585
|
+
|
344
586
|
### Added
|
587
|
+
|
345
588
|
- 'SMTP safe check' option for cases when SMTP server does not return an exact answer that the email does not exist.
|
346
589
|
|
347
590
|
```ruby
|
@@ -389,5 +632,6 @@ Truemail.validate('email@example.com')
|
|
389
632
|
```
|
390
633
|
|
391
634
|
### Changed
|
635
|
+
|
392
636
|
- `Truemail::VERSION`
|
393
637
|
- gem documentation
|