spam_email 0.0.65 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,11 +1,22 @@
1
1
  require 'mail'
2
+ require 'public_suffix'
2
3
 
3
4
  module SpamEmail
4
5
  def self.blacklisted? email_address
5
6
  address = Mail::Address.new(email_address)
6
7
  return false unless address.domain
7
8
 
8
- BLACKLIST.include?(address.domain.downcase)
9
+ complete_domain = address.domain.downcase
10
+ main_domain = PublicSuffix.domain(complete_domain)
11
+ listed = BLACKLIST.include?(main_domain)
12
+
13
+ unless listed
14
+ if complete_domain != main_domain
15
+ listed = BLACKLIST.include?(complete_domain)
16
+ end
17
+ end
18
+
19
+ listed
9
20
  rescue Mail::Field::ParseError
10
21
  false
11
22
  end
@@ -1,3 +1,5 @@
1
+ require 'set'
2
+
1
3
  module SpamEmail
2
4
  IPLIST = Set.new [
3
5
  '176.126.236.241',
@@ -1,3 +1,3 @@
1
1
  module SpamEmail
2
- VERSION = '0.0.65'
2
+ VERSION = '0.1.3'
3
3
  end
data/spam_email.gemspec CHANGED
@@ -20,5 +20,6 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency "rspec"
21
21
  spec.add_development_dependency "rake"
22
22
  spec.add_runtime_dependency "mail"
23
+ spec.add_runtime_dependency "public_suffix"
23
24
  spec.add_runtime_dependency "activemodel"
24
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spam_email
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.65
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phillipp Röll
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-09 00:00:00.000000000 Z
11
+ date: 2021-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: public_suffix
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: activemodel
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -109,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.6.14
126
+ rubygems_version: 3.0.6
114
127
  signing_key:
115
128
  specification_version: 4
116
129
  summary: ActiveModel validation for spam/one-time email addresses