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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d30a86344d7bc981d3e918faa43537fa37a3acab261cf5d004791084a4c7c4ea
4
- data.tar.gz: 70360a9cc946ee53a3a5c22652514941ed49a93f5aeedc6f87db8cc9feb606b0
3
+ metadata.gz: 17a5737519f8156df119dc22788dc19ec53ada84a936806bf55997264450c033
4
+ data.tar.gz: cf291777e0a45707d9e7e6fb3f27e511600817470262f49a046c5c0af4c7ec36
5
5
  SHA512:
6
- metadata.gz: 7b9780a4df12c7f9b33e20e74f7f7e4835ab2dd5bc43213b81314369c644c413e4f4a293069705f0c968d634d9051e935844db19e08f7795807aef4701a192a6
7
- data.tar.gz: 38adc27351a202244ab7f05cb4dbb1500dece6bbba5f358ebb06613a873531ff8799418d3b4da103c97ffc99800534fbe7a647de91a49fb36a4f830bfc398cdb
6
+ metadata.gz: 7e9cf660b90669fc65eb5482d571278627602c89e62818b01947f79a7376b4de41fa78bf46aa0b72a0b1194d1d19a4fb34f647d241f295b08e9a36603c18cb0e
7
+ data.tar.gz: 66986df4338a41c7e5145cca47c3765983fcb04c50e76940ca5dcaec43cb70e6fec5889d8e2d680ac3a8236086d0b2d46d26e498030e8d17a115327ac1fae596
@@ -7,7 +7,7 @@ checks:
7
7
  plugins:
8
8
  rubocop:
9
9
  enabled: true
10
- channel: rubocop-0-78
10
+ channel: rubocop-0-89
11
11
 
12
12
  reek:
13
13
  enabled: true
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:
@@ -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
@@ -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
- - Possibility to use `Truemail::Validator` instance represented as json directly
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