truemail 1.9.2 → 2.2.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: caf982d3dd889a337ae95ab4d4fa79157964e02d83656016ecead8d0831c4d46
4
- data.tar.gz: 9b7ec050811c49072d18f7cd9e36229b982af742f24db3a031d4ab1e2e08f780
3
+ metadata.gz: ccc592c306e3cb61ae0b64e88204a5d464d614abb842bc6538112a19acca812a
4
+ data.tar.gz: f61ebb1883ff711a1816c3f6523c1ab2f4ffa11b13782011d4d42f9204a4e298
5
5
  SHA512:
6
- metadata.gz: d8991eb0d33e2aaff25fdbe9fc95b45e8ee6e0c2661b9c82e622eca182f22570b01f27848b60353bf1ce70419c94cbe23cd51871872e0f92f624676d8a0c317c
7
- data.tar.gz: 7b8e1b24a90019bf21cb1534f64962ba8b68fe8fd6734a564d57c69fbf483c8e35a14bfd35317c58023f6f54616cad591439ac6eddef878604522d929dd6e42a
6
+ metadata.gz: 640d6769aee1f4fde2d525253d3096a99866ecd190ad1e3f5ddb77c4105908f97a7cd3468fb65d97363291ec3931cc4802f25673e696ffee6d028000f8d5edff
7
+ data.tar.gz: 21e63e9a6b6e17b830569a64ddb563264e8ff1a5a4ab6ac22da21169bd331474ae2e467765a196d36b5bafd5ef40867cf4baf74b3861cab967c24bfd457d4a73
@@ -3,7 +3,7 @@ defaults: &defaults
3
3
  docker:
4
4
  - image: circleci/ruby:2.5.0-node
5
5
  environment:
6
- CC_TEST_REPORTER_ID: a98d23d6d916932ae11dbe5df36dee070173cbe376b68758901dcc289e098979
6
+ CC_TEST_REPORTER_ID: 693272a1328521f6f7c09d7ffd419b21c00410da26e98e94c687fdd38b26e2cb
7
7
 
8
8
  references:
9
9
  restore_bundle_cache: &restore_bundle_cache
@@ -7,7 +7,7 @@ checks:
7
7
  plugins:
8
8
  rubocop:
9
9
  enabled: true
10
- channel: rubocop-0-91
10
+ channel: rubocop-1-3
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
6
- - [ ] I have read the [Contribution Guidelines](https://github.com/rubygarage/truemail/blob/master/CONTRIBUTING.md)
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)
7
16
  - [ ] I have read the [documentation](https://truemail-rb.org/truemail-gem)
8
- - [ ] I have searched for [existing GitHub issues](https://github.com/rubygarage/truemail/issues)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/truemail-rb/truemail/issues)
18
+
19
+ <!-- Please use next pattern for your issue report title: [ISSUE] Your issue report title here -->
9
20
 
10
- ### Issue Description
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
 
@@ -40,7 +43,7 @@
40
43
  - [ ] My code follows the code style of this project
41
44
  - [ ] My change requires a change to the documentation
42
45
  - [ ] I have updated the documentation accordingly
43
- - [ ] I have read the [**CONTRIBUTING** document](https://github.com/rubygarage/truemail/blob/master/CONTRIBUTING.md)
46
+ - [ ] I have read the [**CONTRIBUTING** document](https://github.com/truemail-rb/truemail/blob/master/CONTRIBUTING.md)
44
47
  - [ ] I have added tests to cover my changes
45
48
  - [ ] I have run `bundle exec rspec` from the root directory to see all new and existing tests pass
46
49
  - [ ] I have run `rubocop` and `reek` to ensure the code style is valid
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
 
@@ -115,6 +115,27 @@ 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
+
118
139
  Layout/LineLength:
119
140
  Max: 140
120
141
 
@@ -212,6 +233,33 @@ Lint/UselessMethodDefinition:
212
233
  Lint/UselessTimes:
213
234
  Enabled: true
214
235
 
236
+ Lint/HashCompareByIdentity:
237
+ Enabled: true
238
+
239
+ Lint/RedundantSafeNavigation:
240
+ Enabled: true
241
+
242
+ Lint/DuplicateBranch:
243
+ Enabled: true
244
+
245
+ Lint/DuplicateRegexpCharacterClassElement:
246
+ Enabled: true
247
+
248
+ Lint/EmptyBlock:
249
+ Enabled: true
250
+
251
+ Lint/EmptyClass:
252
+ Enabled: true
253
+
254
+ Lint/NoReturnInBeginEndBlocks:
255
+ Enabled: false
256
+
257
+ Lint/ToEnumArguments:
258
+ Enabled: true
259
+
260
+ Lint/UnmodifiedReduceAccumulator:
261
+ Enabled: true
262
+
215
263
  Performance/AncestorsInclude:
216
264
  Enabled: true
217
265
 
@@ -265,3 +313,6 @@ RSpec/MultipleDescribes:
265
313
 
266
314
  RSpec/MultipleMemoizedHelpers:
267
315
  Enabled: false
316
+
317
+ RSpec/StubbedMock:
318
+ Enabled: false
@@ -2,6 +2,83 @@
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.0] - 2020.12.01
6
+
7
+ 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.
8
+
9
+ ### Added
10
+
11
+ - Added `Truemail::Configuration#smtp_fail_fast`
12
+ - Added `Truemail::Validate::Smtp#smtp_fail_fast?`
13
+ - Added `Truemail::Validate::Smtp#filtered_mail_servers_by_fail_fast_scenario`
14
+
15
+ ### Changed
16
+
17
+ - Updated `Truemail::Validate::Smtp#attempts`
18
+ - Updated `Truemail::Validate::Smtp#establish_smtp_connection`
19
+ - Updated gem documentation
20
+
21
+ It's a configurable and not required option:
22
+
23
+ ```ruby
24
+ Truemail.configure do |config|
25
+ config.smtp_fail_fast = true # by default it's equal to false
26
+ end
27
+ ```
28
+
29
+ Thanks to [@wikiti](https://github.com/wikiti) for timeout reports.
30
+
31
+ ## [2.1.0] - 2020.11.21
32
+
33
+ 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.
34
+
35
+ ### Changed
36
+
37
+ - Updated `Truemail::Validate::Mx#fetch_target_hosts`
38
+
39
+ ## [2.0.2] - 2020.11.14
40
+
41
+ ### Fixed
42
+
43
+ Timeouts time units in `Setting global configuration` of Truemail documentation's section. Thanks to [@wikiti](https://github.com/wikiti) for report.
44
+
45
+ ### Changed
46
+
47
+ - Refactored `Truemail::RegexConstant::REGEX_EMAIL_PATTERN`
48
+ - Updated gem development dependencies
49
+ - Updated gem documentation
50
+
51
+ ## [2.0.1] - 2020.10.20
52
+
53
+ ### Changed
54
+
55
+ - Updated gem development dependencies
56
+ - Updated gem documentation
57
+
58
+ ## [2.0.0] - 2020.10.19
59
+
60
+ ### Fixed
61
+
62
+ SMTP connection errors: invalid `HELO` hostname (`localhost`), duplicate `HELO` (`verifier domain`). Thanks to [@nenoganchev](https://github.com/nenoganchev) for report.
63
+
64
+ ### Changed
65
+
66
+ - Updated `Truemail::Validate::Smtp::Request#run`
67
+ - Updated `Truemail::Validate::Smtp::Request#session_data`
68
+ - Updated `Truemail::Validate::Smtp::Response`
69
+
70
+ 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.
71
+
72
+ ```ruby
73
+ #<struct Truemail::Validate::Smtp::Response:0x00007fa74704cd10
74
+ port_opened=true,
75
+ connection=true,
76
+ helo=true, # Returns Boolean instead of Net::SMTP::Response instance
77
+ mailfrom=false,
78
+ rcptto=nil,
79
+ errors={:mailfrom=>"server response timeout"}>
80
+ ```
81
+
5
82
  ## [1.9.2] - 2020.10.02
6
83
 
7
84
  ### Added
@@ -355,6 +432,7 @@ Truemail.validate('email@white-domain.com', with: :regex)
355
432
  smtp_debug=nil>,
356
433
  @validation_type=:regex>
357
434
  ```
435
+
358
436
  **Email hasn't whitelisted domain**
359
437
 
360
438
  ```ruby
@@ -380,9 +458,9 @@ Truemail.validate('email@domain.com', with: :regex)
380
458
 
381
459
  ### Added
382
460
 
383
- - Configurable default validation type, [issue details](https://github.com/rubygarage/truemail/issues/48)
461
+ - Configurable default validation type, [issue details](https://github.com/truemail-rb/truemail/issues/48)
384
462
 
385
- 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```
463
+ 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`
386
464
 
387
465
  ```ruby
388
466
  Truemail.configure do |config|
@@ -437,7 +515,7 @@ Truemail.validate('email@black-domain.com')
437
515
 
438
516
  ### Added
439
517
 
440
- - Feature domain whitelist blacklist. Other validations will not processed even if it was defined in ```validation_type_for```.
518
+ - Feature domain whitelist blacklist. Other validations will not processed even if it was defined in `validation_type_for`.
441
519
 
442
520
  ```ruby
443
521
  Truemail.configure do |config|
@@ -460,7 +538,7 @@ Truemail.configuration.blacklisted_domains = ['somedomain1.com', 'somedomain2.co
460
538
 
461
539
  ### Removed
462
540
 
463
- - ```:skip``` validation type for ```validation_type_for```
541
+ - `:skip` validation type for `validation_type_for`
464
542
 
465
543
  ### Fixed
466
544
 
@@ -475,7 +553,7 @@ Truemail.configuration.blacklisted_domains = ['somedomain1.com', 'somedomain2.co
475
553
 
476
554
  ### Added
477
555
 
478
- - skip validation by domain for validation_type_for configuration option:
556
+ - skip validation by domain for `validation_type_for` configuration option:
479
557
 
480
558
  ```ruby
481
559
  Truemail.configure do |config|
@@ -498,7 +576,7 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
498
576
 
499
577
  ### Added
500
578
 
501
- - SMTP error body configurable option, [issue details](https://github.com/rubygarage/truemail/issues/19)
579
+ - SMTP error body configurable option, [issue details](https://github.com/truemail-rb/truemail/issues/19)
502
580
 
503
581
  ### Changed
504
582
 
@@ -515,11 +593,11 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
515
593
 
516
594
  ### Added
517
595
 
518
- - Reverse trace, [issue details](https://github.com/rubygarage/truemail/issues/18)
596
+ - Reverse trace, [issue details](https://github.com/truemail-rb/truemail/issues/18)
519
597
 
520
598
  ### Fixed
521
599
 
522
- - Behaviour of current host address resolver, [issue details](https://github.com/rubygarage/truemail/issues/18)
600
+ - Behaviour of current host address resolver, [issue details](https://github.com/truemail-rb/truemail/issues/18)
523
601
 
524
602
  ### Changed
525
603
 
@@ -530,7 +608,7 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
530
608
 
531
609
  ### Added
532
610
 
533
- - PTR record audit, [issue details](https://github.com/rubygarage/truemail/issues/18)
611
+ - PTR record audit, [issue details](https://github.com/truemail-rb/truemail/issues/18)
534
612
 
535
613
  ### Changed
536
614
 
@@ -541,12 +619,12 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
541
619
 
542
620
  ### Added
543
621
 
544
- - 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)
622
+ - MX gem logic with [RFC 7505](https://tools.ietf.org/html/rfc7505), null MX record supporting, [issue details](https://github.com/truemail-rb/truemail/issues/27)
545
623
  - [Contributing guideline](CONTRIBUTING.md)
546
624
 
547
625
  ### Fixed
548
626
 
549
- - Multihomed MX records supporting, [issue details](https://github.com/rubygarage/truemail/issues/28)
627
+ - Multihomed MX records supporting, [issue details](https://github.com/truemail-rb/truemail/issues/28)
550
628
 
551
629
  ### Changed
552
630
 
@@ -557,11 +635,11 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
557
635
 
558
636
  ### Added
559
637
 
560
- - Retries for ```Truemail::Validate::Smtp``` for cases when one mx server
638
+ - Retries for `Truemail::Validate::Smtp` for cases when one mx server
561
639
 
562
640
  ### Changed
563
641
 
564
- - ```Truemail::Configuration``` class, please use ```.connection_attempts``` instead ```.retry_count```
642
+ - `Truemail::Configuration` class, please use `.connection_attempts` instead `.retry_count`
565
643
  - `Truemail::VERSION`
566
644
  - gem documentation
567
645
 
@@ -569,12 +647,12 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
569
647
 
570
648
  ### Added
571
649
 
572
- - Checking A record presence if ```MX``` and ```CNAME``` records not exist, [issue details](https://github.com/rubygarage/truemail/issues/10)
573
- - Handling of ```CNAME``` records, [issue details](https://github.com/rubygarage/truemail/issues/11)
574
- - Checking A record if ```MX``` and ```CNAME``` records not found, [issue details](https://github.com/rubygarage/truemail/issues/12)
575
- - Supporting of multihomed MX records, conversion host names to ips, [issue details](https://github.com/rubygarage/truemail/issues/17)
576
- - Timeout configuration for DNS resolver, [issue details](https://github.com/rubygarage/truemail/issues/13)
577
- - ```.valid?``` helper
650
+ - Checking A record presence if `MX` and `CNAME` records not exist, [issue details](https://github.com/truemail-rb/truemail/issues/10)
651
+ - Handling of `CNAME` records, [issue details](https://github.com/truemail-rb/truemail/issues/11)
652
+ - Checking A record if `MX` and `CNAME` records not found, [issue details](https://github.com/truemail-rb/truemail/issues/12)
653
+ - Supporting of multihomed MX records, conversion host names to ips, [issue details](https://github.com/truemail-rb/truemail/issues/17)
654
+ - Timeout configuration for DNS resolver, [issue details](https://github.com/truemail-rb/truemail/issues/13)
655
+ - `.valid?` helper
578
656
 
579
657
  ### Changed
580
658
 
@@ -585,16 +663,16 @@ Truemail.configuration.validation_type_for = { 'somedomain.com' => :skip }
585
663
 
586
664
  ### Added
587
665
 
588
- - Independent domain name extractor to ```Truemail::Validate::Mx#run```
666
+ - Independent domain name extractor to `Truemail::Validate::Mx#run`
589
667
 
590
668
  ### Fixed
591
669
 
592
- - Default ```REGEX_EMAIL_PATTERN```, [issue details](https://github.com/rubygarage/truemail/issues/7)
670
+ - Default `REGEX_EMAIL_PATTERN`, [issue details](https://github.com/truemail-rb/truemail/issues/7)
593
671
  * local part of address can't start with a dot or special symbol
594
672
  * local part of address can include ```+``` symbol
595
- - Default ```REGEX_DOMAIN_PATTERN```, [issue details](https://github.com/rubygarage/truemail/issues/8)
673
+ - Default `REGEX_DOMAIN_PATTERN`, [issue details](https://github.com/truemail-rb/truemail/issues/8)
596
674
  * TLD size increased up to 63 characters
597
- - Case sensitive domain names, [issue details](https://github.com/rubygarage/truemail/issues/9)
675
+ - Case sensitive domain names, [issue details](https://github.com/truemail-rb/truemail/issues/9)
598
676
 
599
677
  ### Changed
600
678
 
@@ -641,10 +719,7 @@ Truemail.validate('email@example.com')
641
719
  #<struct Truemail::Validate::Smtp::Response
642
720
  port_opened=true,
643
721
  connection=false,
644
- helo=
645
- #<Net::SMTP::Response:0x0000000002c934c8
646
- @status="250",
647
- @string="250 mx1.example.com\n">,
722
+ helo=true,
648
723
  mailfrom=false,
649
724
  rcptto=nil,
650
725
  errors={:mailfrom=>"554 5.7.1 Client host blocked\n", :connection=>"server dropped connection after response"}>>,]>,