mailshield 1.5 → 1.6

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: a7a2c56984d3291c6834cb7ec0dd5b8ad1217853be110281863a0aa8fe47c0ce
4
- data.tar.gz: 2b36df2860cbf4bc9b4374541cd3b0a73706c1096a87e053131e77e03ba7f3d3
3
+ metadata.gz: 951a883218a7b24ca485ad6e34755a420a754931ebb5590438e5ae3715ba385a
4
+ data.tar.gz: 74522e2cc5992814083ebb6235a849ff0429f9482bcdec848911526511a386cf
5
5
  SHA512:
6
- metadata.gz: 1ce12f3f8a8496c9d8e548a2f5195c00c4ffeaec64648a9ece07744d9825681224317f7e5cdf0fb02679eeca449ae3437024576f470da32ce1ba661be469bf37
7
- data.tar.gz: cb1560e4f84081e7e23788ec48f0453bef2f7435336fc51d569def04c38798f997f7815ab13396fb653573934098405752d330b623504e8114555f63d9bf6a93
6
+ metadata.gz: fbc024e630f232ff8bb84fff735076c0f8b9c698a12874dc622b4fda4885b4daf7574a830a8acd109d2b3e57fc9265b877516556de71b936b9e3c22f32d01a7e
7
+ data.tar.gz: 87b6a352c1e0307983ffae13f9675e97712d7c786ce39a84a4e09c0a9c6d3764a1c756fdd18ca4aabdb8fd08c11667d5dcdf8e8beaf0fd08322dc657bd13ff77
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mailshield
4
- VERSION = '1.5'
4
+ VERSION = '1.6'
5
5
  end
data/lib/mailshield.rb CHANGED
@@ -18,13 +18,25 @@ module MailShield
18
18
  class SMTPError < ValidationError; end
19
19
  class TemporaryDomainError < ValidationError; end
20
20
  class << self
21
- attr_accessor :dns_cache, :smtp_cache
21
+ attr_accessor :dns_cache, :smtp_cache, :whitelist, :blacklist
22
+
23
+ def configure
24
+ @whitelist ||= []
25
+ @blacklist ||= []
26
+ yield self
27
+ end
22
28
 
23
29
  def validate_email(email)
24
30
  reset_caches
25
31
 
26
32
  domain = extract_domain(email)
27
33
 
34
+ return { valid: false, reason: 'Email domain is blacklisted.' } if blacklist.include?(domain)
35
+
36
+ if !whitelist.empty? && !whitelist.include?(domain)
37
+ return { valid: false, reason: 'Email domain is not whitelisted.' }
38
+ end
39
+
28
40
  begin
29
41
  validate_known_disposal_domain?(domain)
30
42
  validate_format!(email)
@@ -39,10 +51,16 @@ module MailShield
39
51
  { valid: true }
40
52
  end
41
53
 
54
+ # Added Support for verifying email existance in real world
42
55
  def email_exists?(email)
43
56
  smtp_verify_email(email)
44
57
  end
45
58
 
59
+ # Added Support for Email Format Validation
60
+ def valid_format?(email)
61
+ valid_email_format?(email)
62
+ end
63
+
46
64
  private
47
65
 
48
66
  def reset_caches
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailshield
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.5'
4
+ version: '1.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - jana
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-12 00:00:00.000000000 Z
11
+ date: 2024-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-smtp