valid_email2 6.0.0 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +11 -0
- data/README.md +6 -0
- data/config/disposable_email_domains.txt +2 -1
- data/lib/valid_email2/address.rb +13 -4
- data/lib/valid_email2/version.rb +1 -1
- data/spec/address_spec.rb +18 -2
- data/valid_email2.gemspec +0 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18dccc719c18b67299952ce4096d4b1c0184810985015dacfc883d7b7dcb021f
|
4
|
+
data.tar.gz: c3a7f37eceb1dde232850accbd1fed04ba73cff1a899d4f12762f54d2d88a533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5276142248e94cc178345e6ea069fb1675003bd2aa011a732287b0cae349f0e43c2fe8a855080550286b373b0fec3359658555efb4b4de0cec0d22a2fff6f2e
|
7
|
+
data.tar.gz: '087ae98e571ac2eb9acbb0e1230f19e090f577d44e2d0eba75feb7fa2aeafa391848cb8eb86aca95c38e22a99b099ed702206f9bfa7232e6f4356a66ecceb040'
|
@@ -1 +1 @@
|
|
1
|
-
{".":"
|
1
|
+
{".":"7.0.0"}
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [7.0.0](https://github.com/micke/valid_email2/compare/v6.0.0...v7.0.0) (2024-11-19)
|
4
|
+
|
5
|
+
|
6
|
+
### ⚠ BREAKING CHANGES
|
7
|
+
|
8
|
+
* revert allowing scandinavian characters by making allowed multibyte characters configurable ([#261](https://github.com/micke/valid_email2/issues/261))
|
9
|
+
|
10
|
+
### Bug Fixes
|
11
|
+
|
12
|
+
* revert allowing scandinavian characters by making allowed multibyte characters configurable ([#261](https://github.com/micke/valid_email2/issues/261)) ([cf6a1e9](https://github.com/micke/valid_email2/commit/cf6a1e9e28f78e0c6f3e3ea7e9160bf9194b45e6))
|
13
|
+
|
3
14
|
## [6.0.0](https://github.com/micke/valid_email2/compare/v5.3.0...v6.0.0) (2024-11-03)
|
4
15
|
|
5
16
|
|
data/README.md
CHANGED
@@ -128,6 +128,12 @@ address.valid_strict_mx? => true
|
|
128
128
|
address.subaddressed? => false
|
129
129
|
```
|
130
130
|
|
131
|
+
If you want to allow multibyte characters, set it explicitly.
|
132
|
+
|
133
|
+
```ruby
|
134
|
+
ValidEmail2::Address.permitted_multibyte_characters_regex = /[ÆæØøÅåÄäÖöÞþÐð]/
|
135
|
+
```
|
136
|
+
|
131
137
|
### Test environment
|
132
138
|
|
133
139
|
If you are validating `mx` then your specs will fail without an internet connection.
|
@@ -85654,6 +85654,7 @@ kwa-law.com
|
|
85654
85654
|
kwa.xyz
|
85655
85655
|
kwacollections.com
|
85656
85656
|
kwadratowamaskar.pl
|
85657
|
+
kwalah.com
|
85657
85658
|
kwalidd.cf
|
85658
85659
|
kwangjinmold.com
|
85659
85660
|
kwanj.ml
|
@@ -168874,4 +168875,4 @@ zzzmail.pl
|
|
168874
168875
|
zzzpush.icu
|
168875
168876
|
zzzz1717.com
|
168876
168877
|
zzzzzzzzzzzzz.com
|
168877
|
-
zzzzzzzzzzzzz.com0-00.usa.cc
|
168878
|
+
zzzzzzzzzzzzz.com0-00.usa.cc
|
data/lib/valid_email2/address.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require "valid_email2"
|
4
4
|
require "resolv"
|
5
5
|
require "mail"
|
6
|
-
require "unicode/emoji"
|
7
6
|
require "valid_email2/dns_records_cache"
|
8
7
|
|
9
8
|
module ValidEmail2
|
@@ -22,6 +21,14 @@ module ValidEmail2
|
|
22
21
|
@prohibited_domain_characters_regex = val
|
23
22
|
end
|
24
23
|
|
24
|
+
def self.permitted_multibyte_characters_regex
|
25
|
+
@permitted_multibyte_characters_regex
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.permitted_multibyte_characters_regex=(val)
|
29
|
+
@permitted_multibyte_characters_regex = val
|
30
|
+
end
|
31
|
+
|
25
32
|
def initialize(address, dns_timeout = 5, dns_nameserver = nil)
|
26
33
|
@parse_error = false
|
27
34
|
@raw_address = address
|
@@ -34,7 +41,7 @@ module ValidEmail2
|
|
34
41
|
@parse_error = true
|
35
42
|
end
|
36
43
|
|
37
|
-
@parse_error ||=
|
44
|
+
@parse_error ||= address_contain_multibyte_characters?
|
38
45
|
end
|
39
46
|
|
40
47
|
def valid?
|
@@ -130,10 +137,12 @@ module ValidEmail2
|
|
130
137
|
}
|
131
138
|
end
|
132
139
|
|
133
|
-
def
|
140
|
+
def address_contain_multibyte_characters?
|
134
141
|
return false if @raw_address.nil?
|
135
142
|
|
136
|
-
@raw_address.
|
143
|
+
return false if @raw_address.ascii_only?
|
144
|
+
|
145
|
+
@raw_address.each_char.any? { |char| char.bytesize > 1 && char !~ self.class.permitted_multibyte_characters_regex }
|
137
146
|
end
|
138
147
|
|
139
148
|
def resolv_config
|
data/lib/valid_email2/version.rb
CHANGED
data/spec/address_spec.rb
CHANGED
@@ -34,9 +34,25 @@ describe ValidEmail2::Address do
|
|
34
34
|
expect(address.valid?).to be false
|
35
35
|
end
|
36
36
|
|
37
|
-
it "is
|
37
|
+
it "is invalid if it contains Japanese characters" do
|
38
|
+
address = described_class.new("あいうえお@example.com")
|
39
|
+
expect(address.valid?).to be false
|
40
|
+
end
|
41
|
+
|
42
|
+
it "is invalid if it contains special scandinavian characters" do
|
38
43
|
address = described_class.new("jørgen@email.dk")
|
39
|
-
expect(address.valid?).to eq
|
44
|
+
expect(address.valid?).to eq false
|
45
|
+
end
|
46
|
+
|
47
|
+
context "permitted_multibyte_characters_regex is set" do
|
48
|
+
before do
|
49
|
+
described_class.permitted_multibyte_characters_regex = /[ÆæØøÅåÄäÖöÞþÐð]/
|
50
|
+
end
|
51
|
+
|
52
|
+
it "is valid if it contains special scandinavian characters" do
|
53
|
+
address = described_class.new("jørgen@email.dk")
|
54
|
+
expect(address.valid?).to eq true
|
55
|
+
end
|
40
56
|
end
|
41
57
|
end
|
42
58
|
|
data/valid_email2.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valid_email2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Micke Lisinge
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '6.0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: unicode-emoji
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 3.7.0
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 3.7.0
|
139
125
|
description: ActiveModel validation for email. Including MX lookup and disposable
|
140
126
|
email deny list
|
141
127
|
email:
|