truemail 1.6.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
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