truemail 2.0.0 → 2.2.1

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: 51df5b3fdb1b14899fba11d4d5cfc28f52396b85e03a653439c1f3b5616c6804
4
- data.tar.gz: 927ec7dfd5f30a6b9339a587bac21db11c127b9a97074942d4a9d7c363d7ea87
3
+ metadata.gz: '098a5137b9a780eef6d123e9393ccb00814808645e99d53408b9a80c32cf1a7b'
4
+ data.tar.gz: f64e10f884aea786c61006d9be9238b7e1073612c64b12e4b177b18e637da97c
5
5
  SHA512:
6
- metadata.gz: 45d7f94b891fc7d70f488147761ff1de9389435abfda562306c75a401c2a0576cad744d1d607777c826c74a4d1b0575a13ef38745d8737f10a426d8ff80c2d50
7
- data.tar.gz: 21ba52447572ae156611681cd5a14e279e834030e0aa9e8c143f06dda68069eb1016cbed78ad912ba773dc643d89b58bc4645b052ffb655534e31055ee911b2f
6
+ metadata.gz: 822485cd53478f2e38279de6c02f8ec2cc77762fad336c9c0278e415be852037c2bea2966409247893b271b0c61a5bc0769c659d1beaeef4a085ae57dce57a61
7
+ data.tar.gz: e176b835d2a11452f5d2d8ab952fbda08adef54078907c02d3bd3d534adab816a29adbc279202c74bf963c678d926141c89771a72207a2933c78214e2fea7119
@@ -7,7 +7,7 @@ checks:
7
7
  plugins:
8
8
  rubocop:
9
9
  enabled: true
10
- channel: rubocop-0-91
10
+ channel: rubocop-1-5
11
11
 
12
12
  reek:
13
13
  enabled: true
@@ -0,0 +1,36 @@
1
+ # Branch naming convention
2
+
3
+ ## Branch naming
4
+
5
+ > Please note for new pull requests create new branches from current `develop` branch only.
6
+
7
+ Branch name should include type of your contribution and context. Please follow next pattern for naming your branches:
8
+
9
+ ```bash
10
+ feature/add-some-feature
11
+ technical/some-technical-improvements
12
+ bugfix/fix-some-bug-name
13
+ ```
14
+
15
+ ## Before PR actions
16
+
17
+ ### Squash commits
18
+
19
+ Please squash all branch commits into the one before openning your PR from your fork. It's simple to do with the git:
20
+
21
+ ```bash
22
+ git rebase -i [hash your first commit of your branch]~1
23
+ git rebase -i 6467fe36232401fa740af067cfd8ac9ec932fed2~1 # example
24
+ ```
25
+
26
+ ### Add commit description
27
+
28
+ Please complete your commit description folowing next pattern:
29
+
30
+ ```
31
+ Technical/Add info files # should be the same name as your branch name
32
+
33
+ * Added license, changelog, contributing, code of conduct docs
34
+ * Added GitHub templates
35
+ * Updated project license link
36
+ ```
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG] Your bug report title here"
5
+ labels: bug
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make Truemail better! Before submit your bug, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New bug checklist
13
+
14
+ - [ ] I have updated `truemail` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/truemail-rb/truemail/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://truemail-rb.org/truemail-gem)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail/issues)
18
+
19
+ <!-- Please use next pattern for your bug report title: [BUG] Your bug report title here -->
20
+
21
+ ### Bug description
22
+ <!-- Please include what's happening, expected behavior, and any relevant code samples -->
23
+
24
+ ##### Complete output when running truemail, including the stack trace and command used
25
+
26
+ <details>
27
+ <pre>[INSERT OUTPUT HERE]</pre>
28
+ </details>
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for Truemail
4
+ title: "[FEATURE] Your feature request title here"
5
+ labels: enhancement
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make Truemail better! Before submit your new feature request, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New feature request checklist
13
+
14
+ - [ ] I have updated `truemail` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/truemail-rb/truemail/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://truemail-rb.org/truemail-gem)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail/issues)
18
+
19
+ <!-- Please use next pattern for your feature request title: [FEATURE] Your feature request title here -->
20
+
21
+ ### Feature description
22
+
23
+ <!-- Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
24
+
25
+ Describe the solution you'd like. A clear and concise description of what you want to happen.
26
+
27
+ Describe alternatives you've considered. A clear and concise description of any alternative solutions or features you've considered. -->
@@ -1,13 +1,24 @@
1
+ ---
2
+ name: Issue report
3
+ about: Create a report to help us improve
4
+ title: "[ISSUE] Your issue report title here"
5
+ labels: ''
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
1
10
  <!-- Thanks for helping to make Truemail better! Before submit your issue, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
2
11
 
3
- ### New Issue Checklist
12
+ ### New issue checklist
4
13
 
5
- - [ ] I have updated truemail to the latest version
14
+ - [ ] I have updated `truemail` to the latest version
6
15
  - [ ] I have read the [Contribution Guidelines](https://github.com/truemail-rb/truemail/blob/master/CONTRIBUTING.md)
7
16
  - [ ] I have read the [documentation](https://truemail-rb.org/truemail-gem)
8
17
  - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail/issues)
9
18
 
10
- ### Issue Description
19
+ <!-- Please use next pattern for your issue report title: [ISSUE] Your issue report title here -->
20
+
21
+ ### Issue description
11
22
  <!-- Please include what's happening, expected behavior, and any relevant code samples -->
12
23
 
13
24
  ##### Complete output when running truemail, including the stack trace and command used
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Question
3
+ about: Ask your question to Truemail team
4
+ title: "[QUESTION] Your question title here"
5
+ labels: question
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make Truemail better! Before submit your question, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New question checklist
13
+
14
+ - [ ] I have read the [Contribution Guidelines](https://github.com/truemail-rb/truemail/blob/master/CONTRIBUTING.md)
15
+ - [ ] I have read the [documentation](https://truemail-rb.org/truemail-gem)
16
+ - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail/issues)
17
+
18
+ <!-- Please use next pattern for your question title: [QUESTION] Your question title here -->
19
+
20
+ ### Question
21
+
22
+ <!-- Your question context here -->
@@ -1,6 +1,9 @@
1
1
  # PR Details
2
2
 
3
3
  <!-- Provide a general summary of your changes in the Title above -->
4
+ <!-- PR name should the same name as your branch name, example: -->
5
+ <!-- Branch name is: feature/add-some-feature -->
6
+ <!-- PR name should be: Feature/Add some feature -->
4
7
 
5
8
  ## Description
6
9
 
data/.reek.yml CHANGED
@@ -27,6 +27,7 @@ detectors:
27
27
  exclude:
28
28
  - Truemail::Configuration#whitelist_validation
29
29
  - Truemail::Configuration#not_rfc_mx_lookup_flow
30
+ - Truemail::Configuration#smtp_fail_fast
30
31
  - Truemail::Configuration#smtp_safe_check
31
32
  - Truemail::Wrapper#attempts
32
33
 
@@ -41,6 +42,7 @@ detectors:
41
42
  - Truemail::Configuration#domain_matcher
42
43
  - Truemail::Configuration#logger_options
43
44
  - Truemail::Log::Serializer::Base#errors
45
+ - Truemail::Log::Serializer::ValidatorBase#replace_invalid_chars
44
46
 
45
47
  ControlParameter:
46
48
  exclude:
@@ -115,6 +115,30 @@ Style/RedundantSelfAssignment:
115
115
  Style/SoleNestedConditional:
116
116
  Enabled: true
117
117
 
118
+ Style/ClassEqualityComparison:
119
+ Enabled: true
120
+
121
+ Style/ArgumentsForwarding:
122
+ Enabled: true
123
+
124
+ Style/CollectionCompact:
125
+ Enabled: true
126
+
127
+ Style/DocumentDynamicEvalDefinition:
128
+ Enabled: true
129
+
130
+ Style/NegatedIfElseCondition:
131
+ Enabled: true
132
+
133
+ Style/NilLambda:
134
+ Enabled: true
135
+
136
+ Style/SwapValues:
137
+ Enabled: true
138
+
139
+ Style/RedundantArgument:
140
+ Enabled: true
141
+
118
142
  Layout/LineLength:
119
143
  Max: 140
120
144
 
@@ -212,6 +236,36 @@ Lint/UselessMethodDefinition:
212
236
  Lint/UselessTimes:
213
237
  Enabled: true
214
238
 
239
+ Lint/HashCompareByIdentity:
240
+ Enabled: true
241
+
242
+ Lint/RedundantSafeNavigation:
243
+ Enabled: true
244
+
245
+ Lint/DuplicateBranch:
246
+ Enabled: true
247
+
248
+ Lint/DuplicateRegexpCharacterClassElement:
249
+ Enabled: true
250
+
251
+ Lint/EmptyBlock:
252
+ Enabled: true
253
+
254
+ Lint/EmptyClass:
255
+ Enabled: true
256
+
257
+ Lint/NoReturnInBeginEndBlocks:
258
+ Enabled: false
259
+
260
+ Lint/ToEnumArguments:
261
+ Enabled: true
262
+
263
+ Lint/UnmodifiedReduceAccumulator:
264
+ Enabled: true
265
+
266
+ Lint/UnexpectedBlockArity:
267
+ Enabled: true
268
+
215
269
  Performance/AncestorsInclude:
216
270
  Enabled: true
217
271
 
@@ -239,6 +293,18 @@ Performance/StringInclude:
239
293
  Performance/Sum:
240
294
  Enabled: true
241
295
 
296
+ Performance/BlockGivenWithExplicitBlock:
297
+ Enabled: true
298
+
299
+ Performance/CollectionLiteralInLoop:
300
+ Enabled: true
301
+
302
+ Performance/ConstantRegexp:
303
+ Enabled: true
304
+
305
+ Performance/MethodObjectAsBlock:
306
+ Enabled: true
307
+
242
308
  RSpec/ExampleLength:
243
309
  Enabled: false
244
310
 
@@ -265,3 +331,6 @@ RSpec/MultipleDescribes:
265
331
 
266
332
  RSpec/MultipleMemoizedHelpers:
267
333
  Enabled: false
334
+
335
+ RSpec/StubbedMock:
336
+ Enabled: false
@@ -2,11 +2,81 @@
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.2.1] - 2020.12.06
6
+
7
+ ### Fixed
8
+
9
+ - Filter out ASCII-8BIT chars for serialized SMTP response errors. Fixed `Encoding::UndefinedConversionError` in `Truemail::Log::Serializer::ValidatorJson#serialize`. Thanks to [@eni9889](https://github.com/eni9889) for report
10
+ - Added missed `smtp_fail_fast` attribute to serialized validator and auditor results
11
+
12
+ ### Added
13
+
14
+ - Added `Truemail::Log::Serializer::ValidatorBase#replace_invalid_chars`
15
+
16
+ ### Changed
17
+
18
+ - Updated `Truemail::Log::Serializer::Base`
19
+ - Updated `Truemail::Log::Serializer::ValidatorBase`
20
+ - Updated gem development dependencies
21
+
22
+ ## [2.2.0] - 2020.12.01
23
+
24
+ Ability to use fail fast behaviour for SMTP validation layer. When `smtp_fail_fast = true` it means that `truemail` ends smtp validation session after first attempt on the first mx server in any fail cases (network connection/timeout error, smtp validation error). This feature helps to reduce total time of SMTP validation session up to 1 second.
25
+
26
+ ### Added
27
+
28
+ - Added `Truemail::Configuration#smtp_fail_fast`
29
+ - Added `Truemail::Validate::Smtp#smtp_fail_fast?`
30
+ - Added `Truemail::Validate::Smtp#filtered_mail_servers_by_fail_fast_scenario`
31
+
32
+ ### Changed
33
+
34
+ - Updated `Truemail::Validate::Smtp#attempts`
35
+ - Updated `Truemail::Validate::Smtp#establish_smtp_connection`
36
+ - Updated gem documentation
37
+
38
+ It's a configurable and not required option:
39
+
40
+ ```ruby
41
+ Truemail.configure do |config|
42
+ config.smtp_fail_fast = true # by default it's equal to false
43
+ end
44
+ ```
45
+
46
+ Thanks to [@wikiti](https://github.com/wikiti) for timeout reports.
47
+
48
+ ## [2.1.0] - 2020.11.21
49
+
50
+ Collecting only unique ip-addresses for target mail servers. This update reduces email validation time for case when remote server have closed connection via avoiding connection attempt to server with the same ip address.
51
+
52
+ ### Changed
53
+
54
+ - Updated `Truemail::Validate::Mx#fetch_target_hosts`
55
+
56
+ ## [2.0.2] - 2020.11.14
57
+
58
+ ### Fixed
59
+
60
+ Timeouts time units in `Setting global configuration` of Truemail documentation's section. Thanks to [@wikiti](https://github.com/wikiti) for report.
61
+
62
+ ### Changed
63
+
64
+ - Refactored `Truemail::RegexConstant::REGEX_EMAIL_PATTERN`
65
+ - Updated gem development dependencies
66
+ - Updated gem documentation
67
+
68
+ ## [2.0.1] - 2020.10.20
69
+
70
+ ### Changed
71
+
72
+ - Updated gem development dependencies
73
+ - Updated gem documentation
74
+
5
75
  ## [2.0.0] - 2020.10.19
6
76
 
7
77
  ### Fixed
8
78
 
9
- SMTP connection errors: invalid `HELO` hostname (`localhost`), duplicate `HELO` (`verifier domain`).
79
+ SMTP connection errors: invalid `HELO` hostname (`localhost`), duplicate `HELO` (`verifier domain`). Thanks to [@nenoganchev](https://github.com/nenoganchev) for report.
10
80
 
11
81
  ### Changed
12
82
 
@@ -14,7 +84,7 @@ SMTP connection errors: invalid `HELO` hostname (`localhost`), duplicate `HELO`
14
84
  - Updated `Truemail::Validate::Smtp::Request#session_data`
15
85
  - Updated `Truemail::Validate::Smtp::Response`
16
86
 
17
- Now `helo` is a `Boolean` instead of `Net::SMTP::Response` instance. It was changed because `helo` is sending during SMTP-session initializing (`Net::SMTP.new.start`), and `helo` is always `true` if session up is okay. Also `hello` response won't logged as error if it happens. Example of `Truemail::Validate::Smtp::Response` instance from 1.9.3 version.
87
+ Now `helo` is a `Boolean` instead of `Net::SMTP::Response` instance. It was changed because `helo` is sending during SMTP-session initializing (`Net::SMTP.new.start`), and `helo` is always `true` if session up is okay. Also `hello` response won't logged as error if it happens. Example of `Truemail::Validate::Smtp::Response` instance from 2.x version.
18
88
 
19
89
  ```ruby
20
90
  #<struct Truemail::Validate::Smtp::Response:0x00007fa74704cd10
@@ -379,6 +449,7 @@ Truemail.validate('email@white-domain.com', with: :regex)
379
449
  smtp_debug=nil>,
380
450
  @validation_type=:regex>
381
451
  ```
452
+
382
453
  **Email hasn't whitelisted domain**
383
454
 
384
455
  ```ruby
@@ -406,7 +477,7 @@ Truemail.validate('email@domain.com', with: :regex)
406
477
 
407
478
  - Configurable default validation type, [issue details](https://github.com/truemail-rb/truemail/issues/48)
408
479
 
409
- 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```
480
+ 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`
410
481
 
411
482
  ```ruby
412
483
  Truemail.configure do |config|
@@ -461,7 +532,7 @@ Truemail.validate('email@black-domain.com')
461
532
 
462
533
  ### Added
463
534
 
464
- - Feature domain whitelist blacklist. Other validations will not processed even if it was defined in ```validation_type_for```.
535
+ - Feature domain whitelist blacklist. Other validations will not processed even if it was defined in `validation_type_for`.
465
536
 
466
537
  ```ruby
467
538
  Truemail.configure do |config|
@@ -484,7 +555,7 @@ Truemail.configuration.blacklisted_domains = ['somedomain1.com', 'somedomain2.co
484
555
 
485
556
  ### Removed
486
557
 
487
- - ```:skip``` validation type for ```validation_type_for```
558
+ - `:skip` validation type for `validation_type_for`
488
559
 
489
560
  ### Fixed
490
561
 
@@ -499,7 +570,7 @@ Truemail.configuration.blacklisted_domains = ['somedomain1.com', 'somedomain2.co
499
570
 
500
571
  ### Added
501
572
 
502
- - skip validation by domain for validation_type_for configuration option:
573
+ - skip validation by domain for `validation_type_for` configuration option:
503
574
 
504
575
  ```ruby
505
576
  Truemail.configure do |config|
@@ -581,11 +652,11 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
581
652
 
582
653
  ### Added
583
654
 
584
- - Retries for ```Truemail::Validate::Smtp``` for cases when one mx server
655
+ - Retries for `Truemail::Validate::Smtp` for cases when one mx server
585
656
 
586
657
  ### Changed
587
658
 
588
- - ```Truemail::Configuration``` class, please use ```.connection_attempts``` instead ```.retry_count```
659
+ - `Truemail::Configuration` class, please use `.connection_attempts` instead `.retry_count`
589
660
  - `Truemail::VERSION`
590
661
  - gem documentation
591
662
 
@@ -593,12 +664,12 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
593
664
 
594
665
  ### Added
595
666
 
596
- - Checking A record presence if ```MX``` and ```CNAME``` records not exist, [issue details](https://github.com/truemail-rb/truemail/issues/10)
597
- - Handling of ```CNAME``` records, [issue details](https://github.com/truemail-rb/truemail/issues/11)
598
- - Checking A record if ```MX``` and ```CNAME``` records not found, [issue details](https://github.com/truemail-rb/truemail/issues/12)
667
+ - Checking A record presence if `MX` and `CNAME` records not exist, [issue details](https://github.com/truemail-rb/truemail/issues/10)
668
+ - Handling of `CNAME` records, [issue details](https://github.com/truemail-rb/truemail/issues/11)
669
+ - Checking A record if `MX` and `CNAME` records not found, [issue details](https://github.com/truemail-rb/truemail/issues/12)
599
670
  - Supporting of multihomed MX records, conversion host names to ips, [issue details](https://github.com/truemail-rb/truemail/issues/17)
600
671
  - Timeout configuration for DNS resolver, [issue details](https://github.com/truemail-rb/truemail/issues/13)
601
- - ```.valid?``` helper
672
+ - `.valid?` helper
602
673
 
603
674
  ### Changed
604
675
 
@@ -609,14 +680,14 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
609
680
 
610
681
  ### Added
611
682
 
612
- - Independent domain name extractor to ```Truemail::Validate::Mx#run```
683
+ - Independent domain name extractor to `Truemail::Validate::Mx#run`
613
684
 
614
685
  ### Fixed
615
686
 
616
- - Default ```REGEX_EMAIL_PATTERN```, [issue details](https://github.com/truemail-rb/truemail/issues/7)
687
+ - Default `REGEX_EMAIL_PATTERN`, [issue details](https://github.com/truemail-rb/truemail/issues/7)
617
688
  * local part of address can't start with a dot or special symbol
618
689
  * local part of address can include ```+``` symbol
619
- - Default ```REGEX_DOMAIN_PATTERN```, [issue details](https://github.com/truemail-rb/truemail/issues/8)
690
+ - Default `REGEX_DOMAIN_PATTERN`, [issue details](https://github.com/truemail-rb/truemail/issues/8)
620
691
  * TLD size increased up to 63 characters
621
692
  - Case sensitive domain names, [issue details](https://github.com/truemail-rb/truemail/issues/9)
622
693