Skip to content

Commit 9354111

Browse files
Added free & disposable email APIs
1 parent d1cd6e4 commit 9354111

File tree

5 files changed

+233
-10
lines changed

5 files changed

+233
-10
lines changed

README.md

Lines changed: 132 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ Installation
1414

1515
To install this module type the following:
1616

17-
gem install mailboxvalidator-ruby
18-
19-
17+
gem install mailboxvalidator-ruby
2018

2119
Dependencies
2220
============
@@ -25,8 +23,8 @@ An API key is required for this module to function.
2523

2624
Go to https://www.mailboxvalidator.com/plans#api to sign up for a FREE API plan and you'll be given an API key.
2725

28-
Usage
29-
=====
26+
Usage for email validation
27+
==========================
3028

3129
```ruby
3230
require "mailboxvalidator_ruby"
@@ -36,6 +34,7 @@ email = "[email protected]"
3634

3735
mbv = MailboxValidator::MBV.new()
3836
mbv.apikey = apikey
37+
3938
mbv.query_single(email)
4039

4140
if mbv.error != nil
@@ -62,6 +61,7 @@ elsif mbv.result != nil
6261
puts "error_code: #{mbv.result.error_code}"
6362
puts "error_message: #{mbv.result.error_message}"
6463
end
64+
6565
```
6666

6767
Functions
@@ -186,6 +186,133 @@ The error code if there is any error. See error table below.
186186

187187
The error message if there is any error. See error table below.
188188

189+
190+
Usage for checking if email is from a disposable email provider
191+
===============================================================
192+
193+
```ruby
194+
require "mailboxvalidator_ruby"
195+
196+
apikey = "MY_API_KEY"
197+
198+
199+
mbv = MailboxValidator::MBV.new()
200+
mbv.apikey = apikey
201+
202+
mbv.disposable_email(email)
203+
204+
if mbv.error != nil
205+
puts "Error: #{mbv.error}"
206+
elsif mbv.result != nil
207+
puts "email_address: #{mbv.result.email_address}"
208+
puts "is_disposable: #{mbv.result.is_disposable}"
209+
puts "credits_available: #{mbv.result.credits_available}"
210+
puts "error_code: #{mbv.result.error_code}"
211+
puts "error_message: #{mbv.result.error_message}"
212+
end
213+
214+
```
215+
216+
Functions
217+
=========
218+
219+
### new()
220+
221+
Creates a new instance of the MailboxValidator object.
222+
223+
### disposable_email(email_address)
224+
225+
Checks if the supplied email address is from a disposable email provider.
226+
227+
Result Fields
228+
=============
229+
230+
### email_address
231+
232+
The input email address.
233+
234+
### is_disposable
235+
236+
Whether the email address is a temporary one from a disposable email provider.
237+
238+
Return values: True, False
239+
240+
### credits_available
241+
242+
The number of credits left to perform validations.
243+
244+
### error_code
245+
246+
The error code if there is any error. See error table below.
247+
248+
### error_message
249+
250+
The error message if there is any error. See error table below.
251+
252+
253+
Usage for checking if email is from a free email provider
254+
=========================================================
255+
256+
```ruby
257+
require "mailboxvalidator_ruby"
258+
259+
apikey = "MY_API_KEY"
260+
261+
262+
mbv = MailboxValidator::MBV.new()
263+
mbv.apikey = apikey
264+
265+
mbv.free_email(email)
266+
267+
if mbv.error != nil
268+
puts "Error: #{mbv.error}"
269+
elsif mbv.result != nil
270+
puts "email_address: #{mbv.result.email_address}"
271+
puts "is_free: #{mbv.result.is_free}"
272+
puts "credits_available: #{mbv.result.credits_available}"
273+
puts "error_code: #{mbv.result.error_code}"
274+
puts "error_message: #{mbv.result.error_message}"
275+
end
276+
277+
```
278+
279+
Functions
280+
=========
281+
282+
### new()
283+
284+
Creates a new instance of the MailboxValidator object.
285+
286+
### free_email(email_address)
287+
288+
Checks if the supplied email address is from a free email provider.
289+
290+
Result Fields
291+
=============
292+
293+
### email_address
294+
295+
The input email address.
296+
297+
### is_free
298+
299+
Whether the email address is from a free email provider like Gmail or Hotmail.
300+
301+
Return values: True, False
302+
303+
### credits_available
304+
305+
The number of credits left to perform validations.
306+
307+
### error_code
308+
309+
The error code if there is any error. See error table below.
310+
311+
### error_message
312+
313+
The error message if there is any error. See error table below.
314+
315+
189316
Errors
190317
======
191318

README.rdoc

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ email = "[email protected]"
99

1010
mbv = MailboxValidator::MBV.new()
1111
mbv.apikey = apikey
12+
1213
mbv.query_single(email)
1314

1415
if mbv.error != nil
@@ -36,11 +37,35 @@ elsif mbv.result != nil
3637
puts "error_message: #{mbv.result.error_message}"
3738
end
3839

40+
mbv.disposable_email(email)
41+
42+
if mbv.error != nil
43+
puts "Error: #{mbv.error}"
44+
elsif mbv.result != nil
45+
puts "email_address: #{mbv.result.email_address}"
46+
puts "is_disposable: #{mbv.result.is_disposable}"
47+
puts "credits_available: #{mbv.result.credits_available}"
48+
puts "error_code: #{mbv.result.error_code}"
49+
puts "error_message: #{mbv.result.error_message}"
50+
end
51+
52+
mbv.free_email(email)
53+
54+
if mbv.error != nil
55+
puts "Error: #{mbv.error}"
56+
elsif mbv.result != nil
57+
puts "email_address: #{mbv.result.email_address}"
58+
puts "is_free: #{mbv.result.is_free}"
59+
puts "credits_available: #{mbv.result.credits_available}"
60+
puts "error_code: #{mbv.result.error_code}"
61+
puts "error_message: #{mbv.result.error_message}"
62+
end
63+
3964
== Dependencies
4065

41-
* Go to http://www.mailboxvalidator.com/plans#api to sign up for a FREE API plan and you'll be given an API key.
66+
* Go to https://www.mailboxvalidator.com/plans#api to sign up for a FREE API plan and you'll be given an API key.
4267

4368
== Copyright
4469

45-
Copyright (c) 2017 MailboxValidator.com
70+
Copyright (c) 2018 MailboxValidator.com
4671

lib/mailboxvalidator_ruby.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,51 @@ def query_single(email)
3636
@result = nil
3737
end
3838
end
39+
40+
def disposable_email(email)
41+
@email = CGI.escape(email)
42+
uri = URI("https://api.mailboxvalidator.com/v1/email/disposable?key=#{@apikey}&email=#{@email}")
43+
44+
begin
45+
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
46+
request = Net::HTTP::Get.new uri
47+
response = http.request request
48+
49+
if response.code == "200"
50+
@result = JSON.parse(response.body, object_class: OpenStruct)
51+
@error = nil
52+
else
53+
@error = "#{response.code} - #{response.message}"
54+
@result = nil
55+
end
56+
end
57+
rescue Exception => e
58+
@error = e.message
59+
@result = nil
60+
end
61+
end
62+
63+
def free_email(email)
64+
@email = CGI.escape(email)
65+
uri = URI("https://api.mailboxvalidator.com/v1/email/free?key=#{@apikey}&email=#{@email}")
66+
67+
begin
68+
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
69+
request = Net::HTTP::Get.new uri
70+
response = http.request request
71+
72+
if response.code == "200"
73+
@result = JSON.parse(response.body, object_class: OpenStruct)
74+
@error = nil
75+
else
76+
@error = "#{response.code} - #{response.message}"
77+
@result = nil
78+
end
79+
end
80+
rescue Exception => e
81+
@error = e.message
82+
@result = nil
83+
end
84+
end
3985
end
4086
end

mailboxvalidator_ruby.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Gem::Specification.new do |s|
22
s.name = 'mailboxvalidator_ruby'
3-
s.version = '1.1.0'
3+
s.version = '1.2.0'
44
s.required_ruby_version = '>= 2.0.0'
5-
s.date = '2016-07-03'
5+
s.date = '2018-09-13'
66
s.summary = "MailboxValidator API wrapper"
77
s.description = "MailboxValidator API wrapper"
88
s.author = "MailboxValidator"

test/test.rb

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
mbv = MailboxValidator::MBV.new()
77
mbv.apikey = apikey
8+
89
mbv.query_single(email)
910

1011
if mbv.error != nil
@@ -30,4 +31,28 @@
3031
puts "credits_available: #{mbv.result.credits_available}"
3132
puts "error_code: #{mbv.result.error_code}"
3233
puts "error_message: #{mbv.result.error_message}"
33-
end
34+
end
35+
36+
mbv.disposable_email(email)
37+
38+
if mbv.error != nil
39+
puts "Error: #{mbv.error}"
40+
elsif mbv.result != nil
41+
puts "email_address: #{mbv.result.email_address}"
42+
puts "is_disposable: #{mbv.result.is_disposable}"
43+
puts "credits_available: #{mbv.result.credits_available}"
44+
puts "error_code: #{mbv.result.error_code}"
45+
puts "error_message: #{mbv.result.error_message}"
46+
end
47+
48+
mbv.free_email(email)
49+
50+
if mbv.error != nil
51+
puts "Error: #{mbv.error}"
52+
elsif mbv.result != nil
53+
puts "email_address: #{mbv.result.email_address}"
54+
puts "is_free: #{mbv.result.is_free}"
55+
puts "credits_available: #{mbv.result.credits_available}"
56+
puts "error_code: #{mbv.result.error_code}"
57+
puts "error_message: #{mbv.result.error_message}"
58+
end

0 commit comments

Comments
 (0)