mailshield 1.5 → 1.6

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: 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