disposable_mail 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2cd82e802df31f895cf346115e01d7f06be4bb44
4
+ data.tar.gz: adb73e51344649feb77a341987ed7c9a41dae0d6
5
+ SHA512:
6
+ metadata.gz: c6a941ae6aec898507e0bc0684f08acd06e07001c9f8e7d3ce3d2cfe6c88552b363f81cd3a3850071c134403020cc1c13b59a822d85a7ca783dc45fe4e79159f
7
+ data.tar.gz: 20d5cdae96f44fc730d7011e3b7b9d2686ed9af24c1166dff37482f48133b750083a965b492120abea2f36402fed5e30e3de0c808245c598da4c34d7fab03b29
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
@@ -0,0 +1,3 @@
1
+ [submodule "data/disposable-email-domains"]
2
+ path = data/disposable-email-domains
3
+ url = https://github.com/martenson/disposable-email-domains.git
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ os:
3
+ - linux
4
+ - osx
5
+ rvm:
6
+ - 2.2.2
7
+ - 2.1.6
8
+ - 2.0.0
9
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in disposable_mail.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 oesgalha
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,105 @@
1
+ # DisposableMail
2
+ [![Build Status](https://travis-ci.org/oesgalha/disposable_mail.svg)](https://travis-ci.org/oesgalha/disposable_mail)
3
+ [![Code Climate](https://codeclimate.com/github/oesgalha/disposable_mail/badges/gpa.svg)](https://codeclimate.com/github/oesgalha/disposable_mail)
4
+
5
+ DisposableMail serves you a blacklist with domains from [disposable mail services](https://en.wikipedia.org/wiki/Disposable_email_address), like `mailinator.com` or `guerrillamail.com`. The list can be used to prevent sending mails to these domains (which probably won't be open), or to prevent dummy users registration in your website.
6
+
7
+ The domain list comes from this git repo:
8
+ https://github.com/martenson/disposable-email-domains
9
+
10
+ And this gem syncs with it through a git submodule (see the data folder).
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ ```ruby
17
+ gem 'disposable_mail', github: 'oesgalha/disposable_mail', submodules: true
18
+ ```
19
+
20
+ (Notice: The `submodules: true` option is important! The data from this gem comes from a git submodule and without it, it won't work properly)
21
+
22
+ And then execute:
23
+
24
+ $ bundle
25
+
26
+ ## Usage
27
+
28
+ ```ruby
29
+ require 'disposable_mail'
30
+
31
+ DisposableMail.list # => ["0815.ru", "0815.su", "0clickemail.com", "0-mail.com", "0wnd.net", "0wnd.org", "10minut.com.pl", ... ]
32
+
33
+ DisposableMail.include? "dummy@mailinator.com" # => true
34
+
35
+ DisposableMail.include? "bot@guerillamail.com" # => true
36
+
37
+ DisposableMail.include? "legit-person@yahoo.com" # => false
38
+ ```
39
+
40
+ ### Rails
41
+
42
+ If you include this gem in your rails project you can use a custom validator to block dummy users registration.
43
+
44
+ Suposse you don't want to create `User`s with a blacklisted mail domain, and your mail attribute is called `email`:
45
+
46
+ ```ruby
47
+ class User < ActiveRecord::Base
48
+
49
+ # validates :email, undisposable: true
50
+ validates :email, undisposable: { message: 'Sorry, but we do not accept your mail provider.' }
51
+
52
+ end
53
+ ```
54
+
55
+ Now if you try to create an user with a mail from the blacklisted domains, you get an AR validation error:
56
+
57
+ ```ruby
58
+ user = User.create(email: "bot@mailinator.com")
59
+ user.errors.messages # => {:email=>["Sorry, but we do not accept your mail provider."]}
60
+ ```
61
+
62
+ What if you want to create those users only in the test environment?
63
+
64
+ ```ruby
65
+ class User < ActiveRecord::Base
66
+
67
+ validates :email, undisposable: true, unless: -> { Rails.env.test? }
68
+
69
+ end
70
+ ```
71
+
72
+ ### I18n
73
+
74
+ If you don't specify the message in the model validation, Active Record will look for messages in this order:
75
+ ```
76
+ activerecord.errors.models.user.attributes.email.undisposable
77
+ activerecord.errors.models.user.undisposable
78
+ activerecord.errors.messages.undisposable
79
+ errors.attributes.email.undisposable
80
+ errors.messages.undisposable
81
+ ```
82
+
83
+ Here's an example of an `en.yml` file:
84
+
85
+ ```yml
86
+ en:
87
+ errors:
88
+ attributes:
89
+ email:
90
+ undisposable: "domain is blocked"
91
+ ```
92
+
93
+ You can use the aforementioned order of lookup to craft specific error messages.
94
+
95
+ This gem comes with default messages for the following locales:
96
+ - en
97
+ - pt-BR
98
+
99
+ ## Contributing
100
+
101
+ 1. Fork it ( https://github.com/oesgalha/disposable_mail/fork )
102
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
103
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
104
+ 4. Push to the branch (`git push origin my-new-feature`)
105
+ 5. Create a new Pull Request
@@ -0,0 +1,17 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ task :test do
4
+ $LOAD_PATH.unshift('lib', 'test')
5
+ Dir.glob('./test/**/test_*.rb') { |f| require f }
6
+ end
7
+
8
+ task default: :test
9
+
10
+ namespace :disposable_mail do
11
+ desc "outputs the current disposable domains"
12
+ task :puts_domains do
13
+ blacklist_path = 'data/disposable-email-domains/disposable_email_blacklist.conf'
14
+ blacklist = File.expand_path(File.join(File.dirname(__FILE__), blacklist_path))
15
+ puts File.new(blacklist).readlines.map(&:strip).to_s.gsub(/,/, ",\n")
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'disposable_mail/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'disposable_mail'
8
+ spec.version = DisposableMail::VERSION
9
+ spec.authors = ['Oscar Esgalha']
10
+ spec.email = ['oscaresgalha@gmail.com']
11
+ spec.summary = %q{A ruby gem with a list of disposable mail domains.}
12
+ spec.description = <<DESC
13
+ DisposableMail serves you a blacklist with domains from disposable mail services, like mailinator.com or guerrillamail.com.
14
+ The list can be used to prevent sending mails to these domains (which probably won't be open),
15
+ or to prevent dummy users registration in your website.
16
+ DESC
17
+ spec.homepage = 'https://github.com/oesgalha/disposable_mail'
18
+ spec.license = 'MIT'
19
+
20
+ spec.files = `git ls-files -z`.split("\x0")
21
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.7'
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'minitest', '~> 5.6'
28
+ end
@@ -0,0 +1,3 @@
1
+ require 'disposable_mail/disposable'
2
+ require 'disposable_mail/rails/validator' if defined?(::ActiveModel)
3
+ require 'disposable_mail/rails/railtie' if defined?(Rails)
@@ -0,0 +1,783 @@
1
+ module DisposableMail
2
+ class << self
3
+ # Returns a list with the disposable mail domains
4
+ def list
5
+ [
6
+ "0815.ru",
7
+ "0815.su",
8
+ "0clickemail.com",
9
+ "0-mail.com",
10
+ "0wnd.net",
11
+ "0wnd.org",
12
+ "10mail.org",
13
+ "10minut.com.pl",
14
+ "10minutemail.com",
15
+ "10minutemail.de",
16
+ "123-m.com",
17
+ "126.com",
18
+ "139.com",
19
+ "163.com",
20
+ "1chuan.com",
21
+ "1pad.de",
22
+ "1zhuan.com",
23
+ "20mail.it",
24
+ "20minutemail.com",
25
+ "21cn.com",
26
+ "2prong.com",
27
+ "30minutemail.com",
28
+ "33mail.com",
29
+ "3d-painting.com",
30
+ "4warding.com",
31
+ "4warding.net",
32
+ "4warding.org",
33
+ "60minutemail.com",
34
+ "675hosting.com",
35
+ "675hosting.net",
36
+ "675hosting.org",
37
+ "6paq.com",
38
+ "6url.com",
39
+ "75hosting.com",
40
+ "75hosting.net",
41
+ "75hosting.org",
42
+ "7days-printing.com",
43
+ "7tags.com",
44
+ "99experts.com",
45
+ "9ox.net",
46
+ "a45.in",
47
+ "a-bc.net",
48
+ "abyssmail.com",
49
+ "afrobacon.com",
50
+ "agedmail.com",
51
+ "ag.us.to",
52
+ "ajaxapp.net",
53
+ "alivance.com",
54
+ "amilegit.com",
55
+ "amiriindustries.com",
56
+ "amiri.net",
57
+ "anappthat.com",
58
+ "ano-mail.net",
59
+ "anonbox.net",
60
+ "anonymail.dk",
61
+ "anonymbox.com",
62
+ "antichef.com",
63
+ "antichef.net",
64
+ "antispam.de",
65
+ "armyspy.com",
66
+ "azmeil.tk",
67
+ "baxomale.ht.cx",
68
+ "beddly.com",
69
+ "beefmilk.com",
70
+ "bigprofessor.so",
71
+ "bigstring.com",
72
+ "binkmail.com",
73
+ "bio-muesli.net",
74
+ "bladesmail.net",
75
+ "blogmyway.org",
76
+ "bobmail.info",
77
+ "bodhi.lawlita.com",
78
+ "bofthew.com",
79
+ "bootybay.de",
80
+ "boun.cr",
81
+ "bouncr.com",
82
+ "boxformail.in",
83
+ "boximail.com",
84
+ "brefmail.com",
85
+ "brennendesreich.de",
86
+ "broadbandninja.com",
87
+ "bsnow.net",
88
+ "buffemail.com",
89
+ "bugmenot.com",
90
+ "bu.mintemail.com",
91
+ "bumpymail.com",
92
+ "bundes-li.ga",
93
+ "bund.us",
94
+ "burnthespam.info",
95
+ "buyusedlibrarybooks.org",
96
+ "byom.de",
97
+ "c2.hu",
98
+ "cachedot.net",
99
+ "casualdx.com",
100
+ "cellurl.com",
101
+ "centermail.com",
102
+ "centermail.net",
103
+ "chammy.info",
104
+ "cheatmail.de",
105
+ "chogmail.com",
106
+ "choicemail1.com",
107
+ "chong-mail.com",
108
+ "chong-mail.net",
109
+ "chong-mail.org",
110
+ "clixser.com",
111
+ "clrmail.com",
112
+ "cmail.com",
113
+ "cmail.net",
114
+ "cmail.org",
115
+ "consumerriot.com",
116
+ "cool.fr.nf",
117
+ "correo.blogos.net",
118
+ "cosmorph.com",
119
+ "courriel.fr.nf",
120
+ "courrieltemporaire.com",
121
+ "crapmail.org",
122
+ "crazymailing.com",
123
+ "cubiclink.com",
124
+ "curryworld.de",
125
+ "cust.in",
126
+ "cuvox.de",
127
+ "dacoolest.com",
128
+ "dandikmail.com",
129
+ "dayrep.com",
130
+ "dbunker.com",
131
+ "dcemail.com",
132
+ "deadaddress.com",
133
+ "deadspam.com",
134
+ "deagot.com",
135
+ "dealja.com",
136
+ "despam.it",
137
+ "despammed.com",
138
+ "devnullmail.com",
139
+ "dfgh.net",
140
+ "digitalsanctuary.com",
141
+ "dingbone.com",
142
+ "discard.email",
143
+ "discardmail.com",
144
+ "discardmail.de",
145
+ "disposableaddress.com",
146
+ "disposableemailaddresses.com",
147
+ "disposableinbox.com",
148
+ "disposeamail.com",
149
+ "dispose.it",
150
+ "disposemail.com",
151
+ "dispostable.com",
152
+ "divermail.com",
153
+ "dm.w3internet.co.ukexample.com",
154
+ "dodgeit.com",
155
+ "dodgit.com",
156
+ "dodgit.org",
157
+ "doiea.com",
158
+ "domozmail.com",
159
+ "donemail.ru",
160
+ "dontreg.com",
161
+ "dontsendmespam.de",
162
+ "dotmsg.com",
163
+ "drdrb.com",
164
+ "drdrb.net",
165
+ "dropmail.me",
166
+ "dudmail.com",
167
+ "dumpandjunk.com",
168
+ "dump-email.info",
169
+ "dumpmail.de",
170
+ "dumpyemail.com",
171
+ "duskmail.com",
172
+ "e4ward.com",
173
+ "easytrashmail.com",
174
+ "ee1.pl",
175
+ "ee2.pl",
176
+ "eelmail.com",
177
+ "einrot.com",
178
+ "einrot.de",
179
+ "email60.com",
180
+ "e-mail.com",
181
+ "emaildienst.de",
182
+ "emailgo.de",
183
+ "emailias.com",
184
+ "emailigo.de",
185
+ "emailinfive.com",
186
+ "emaillime.com",
187
+ "emailmiser.com",
188
+ "e-mail.org",
189
+ "emailsensei.com",
190
+ "emailtemporario.com.br",
191
+ "emailtemporar.ro",
192
+ "emailthe.net",
193
+ "emailtmp.com",
194
+ "emailto.de",
195
+ "emailwarden.com",
196
+ "emailx.at.hm",
197
+ "emailxfer.com",
198
+ "emeil.in",
199
+ "emeil.ir",
200
+ "emz.net",
201
+ "enterto.com",
202
+ "ephemail.net",
203
+ "etranquil.com",
204
+ "etranquil.net",
205
+ "etranquil.org",
206
+ "evopo.com",
207
+ "example.com",
208
+ "explodemail.com",
209
+ "eyepaste.com",
210
+ "fakeinbox.com",
211
+ "fakeinformation.com",
212
+ "fakemail.fr",
213
+ "fakemailz.com",
214
+ "fammix.com",
215
+ "fansworldwide.de",
216
+ "fantasymail.de",
217
+ "fastacura.com",
218
+ "fastchevy.com",
219
+ "fastchrysler.com",
220
+ "fastkawasaki.com",
221
+ "fastmazda.com",
222
+ "fastmitsubishi.com",
223
+ "fastnissan.com",
224
+ "fastsubaru.com",
225
+ "fastsuzuki.com",
226
+ "fasttoyota.com",
227
+ "fastyamaha.com",
228
+ "fatflap.com",
229
+ "fdfdsfds.com",
230
+ "fightallspam.com",
231
+ "filzmail.com",
232
+ "fixmail.tk",
233
+ "fizmail.com",
234
+ "fleckens.hu",
235
+ "flurred.com",
236
+ "flyspam.com",
237
+ "footard.com",
238
+ "forgetmail.com",
239
+ "fr33mail.info",
240
+ "frapmail.com",
241
+ "freundin.ru",
242
+ "friendlymail.co.uk",
243
+ "front14.org",
244
+ "fuckingduh.com",
245
+ "fudgerub.com",
246
+ "fux0ringduh.com",
247
+ "garliclife.com",
248
+ "gelitik.in",
249
+ "get1mail.com",
250
+ "get2mail.fr",
251
+ "getairmail.com",
252
+ "getmails.eu",
253
+ "getonemail.com",
254
+ "getonemail.net",
255
+ "ghosttexter.de",
256
+ "girlsundertheinfluence.com",
257
+ "gishpuppy.com",
258
+ "goemailgo.com",
259
+ "gorillaswithdirtyarmpits.com",
260
+ "gotmail.com",
261
+ "gotmail.net",
262
+ "gotmail.org",
263
+ "gotti.otherinbox.com",
264
+ "gowikibooks.com",
265
+ "gowikicampus.com",
266
+ "gowikicars.com",
267
+ "gowikifilms.com",
268
+ "gowikigames.com",
269
+ "gowikimusic.com",
270
+ "gowikinetwork.com",
271
+ "gowikitravel.com",
272
+ "gowikitv.com",
273
+ "grandmamail.com",
274
+ "grandmasmail.com",
275
+ "great-host.in",
276
+ "greensloth.com",
277
+ "grr.la",
278
+ "gsrv.co.uk",
279
+ "guerillamail.biz",
280
+ "guerillamail.com",
281
+ "guerillamail.net",
282
+ "guerillamail.org",
283
+ "guerrillamail.biz",
284
+ "guerrillamailblock.com",
285
+ "guerrillamail.com",
286
+ "guerrillamail.de",
287
+ "guerrillamail.net",
288
+ "guerrillamail.org",
289
+ "gustr.com",
290
+ "h8s.org",
291
+ "hacccc.com",
292
+ "haltospam.com",
293
+ "hartbot.de",
294
+ "hatespam.org",
295
+ "herp.in",
296
+ "hidemail.de",
297
+ "hidzz.com",
298
+ "h.mintemail.com",
299
+ "hochsitze.com",
300
+ "hotpop.com",
301
+ "hulapla.de",
302
+ "hushmail.com",
303
+ "ieatspam.eu",
304
+ "ieatspam.info",
305
+ "ieh-mail.de",
306
+ "ihateyoualot.info",
307
+ "iheartspam.org",
308
+ "imails.info",
309
+ "imgof.com",
310
+ "imstations.com",
311
+ "inbax.tk",
312
+ "inboxalias.com",
313
+ "inboxclean.com",
314
+ "inboxclean.org",
315
+ "inbox.si",
316
+ "incognitomail.com",
317
+ "incognitomail.net",
318
+ "incognitomail.org",
319
+ "insorg-mail.info",
320
+ "instant-mail.de",
321
+ "ipoo.org",
322
+ "irish2me.com",
323
+ "iwi.net",
324
+ "jetable.com",
325
+ "jetable.fr.nf",
326
+ "jetable.net",
327
+ "jetable.org",
328
+ "jnxjn.com",
329
+ "jourrapide.com",
330
+ "jsrsolutions.com",
331
+ "junk1e.com",
332
+ "kasmail.com",
333
+ "kaspop.com",
334
+ "keepmymail.com",
335
+ "killmail.com",
336
+ "killmail.net",
337
+ "kir.ch.tc",
338
+ "klassmaster.com",
339
+ "klassmaster.net",
340
+ "klzlk.com",
341
+ "koszmail.pl",
342
+ "kulturbetrieb.info",
343
+ "kurzepost.de",
344
+ "l33r.eu",
345
+ "lackmail.net",
346
+ "landmail.co",
347
+ "lastmail.co",
348
+ "lavabit.com",
349
+ "letthemeatspam.com",
350
+ "lhsdv.com",
351
+ "lifebyfood.com",
352
+ "link2mail.net",
353
+ "litedrop.com",
354
+ "loadby.us",
355
+ "lol.ovpn.to",
356
+ "lookugly.com",
357
+ "lopl.co.cc",
358
+ "lortemail.dk",
359
+ "lovemeleaveme.com",
360
+ "lr78.com",
361
+ "lroid.com",
362
+ "m4ilweb.info",
363
+ "maboard.com",
364
+ "mail114.net",
365
+ "mail2rss.org",
366
+ "mail333.com",
367
+ "mail4trash.com",
368
+ "mailbidon.com",
369
+ "mailblocks.com",
370
+ "mailbucket.org",
371
+ "mail.by",
372
+ "mailcatch.com",
373
+ "maildrop.cc",
374
+ "maileater.com",
375
+ "mailexpire.com",
376
+ "mailfa.tk",
377
+ "mail-filter.com",
378
+ "mailfreeonline.com",
379
+ "mailguard.me",
380
+ "mailimate.com",
381
+ "mailin8r.com",
382
+ "mailinater.com",
383
+ "mailinator2.com",
384
+ "mailinator.com",
385
+ "mailinator.net",
386
+ "mailinator.org",
387
+ "mailinator.us",
388
+ "mailincubator.com",
389
+ "mailismagic.com",
390
+ "mailme.ir",
391
+ "mailme.lv",
392
+ "mailmetrash.com",
393
+ "mail.mezimages.net",
394
+ "mailmoat.com",
395
+ "mailnator.com",
396
+ "mailnesia.com",
397
+ "mailnull.com",
398
+ "mailquack.com",
399
+ "mailscrap.com",
400
+ "mailshell.com",
401
+ "mailsiphon.com",
402
+ "mailslapping.com",
403
+ "mailslite.com",
404
+ "mailtemp.info",
405
+ "mail-temporaire.fr",
406
+ "mailtothis.com",
407
+ "mailzilla.com",
408
+ "mailzilla.org",
409
+ "makemetheking.com",
410
+ "manifestgenerator.com",
411
+ "manybrain.com",
412
+ "mbx.cc",
413
+ "mega.zik.dj",
414
+ "meinspamschutz.de",
415
+ "meltmail.com",
416
+ "messagebeamer.de",
417
+ "mezimages.net",
418
+ "mierdamail.com",
419
+ "migmail.pl",
420
+ "migumail.com",
421
+ "mintemail.com",
422
+ "mjukglass.nu",
423
+ "moakt.com",
424
+ "mobileninja.co.uk",
425
+ "mobi.web.id",
426
+ "moburl.com",
427
+ "moncourrier.fr.nf",
428
+ "monemail.fr.nf",
429
+ "monmail.fr.nf",
430
+ "monumentmail.com",
431
+ "msa.minsmail.com",
432
+ "mt2009.com",
433
+ "mt2014.com",
434
+ "mt2015.com",
435
+ "mx0.wwwnew.eu",
436
+ "mycleaninbox.net",
437
+ "myemailboxy.com",
438
+ "mymail-in.net",
439
+ "mynetstore.de",
440
+ "mypacks.net",
441
+ "mypartyclip.de",
442
+ "myphantomemail.com",
443
+ "myspaceinc.com",
444
+ "myspaceinc.net",
445
+ "myspaceinc.org",
446
+ "myspacepimpedup.com",
447
+ "myspamless.com",
448
+ "mytempemail.com",
449
+ "mytrashmail.com",
450
+ "neomailbox.com",
451
+ "nepwk.com",
452
+ "nervmich.net",
453
+ "nervtmich.net",
454
+ "netmails.com",
455
+ "netmails.net",
456
+ "netzidiot.de",
457
+ "neverbox.com",
458
+ "nice-4u.com",
459
+ "nobulk.com",
460
+ "noclickemail.com",
461
+ "nogmailspam.info",
462
+ "nomail2me.com",
463
+ "nomail.xl.cx",
464
+ "nomorespamemails.com",
465
+ "nonspam.eu",
466
+ "nonspammer.de",
467
+ "noref.in",
468
+ "nospam4.us",
469
+ "nospamfor.us",
470
+ "nospamthanks.info",
471
+ "no-spam.ws",
472
+ "nospam.ze.tc",
473
+ "notmailinator.com",
474
+ "notsharingmy.info",
475
+ "nowhere.org",
476
+ "nowmymail.com",
477
+ "nurfuerspam.de",
478
+ "nus.edu.sg",
479
+ "nwldx.com",
480
+ "objectmail.com",
481
+ "obobbo.com",
482
+ "odaymail.com",
483
+ "oneoffemail.com",
484
+ "oneoffmail.com",
485
+ "onewaymail.com",
486
+ "online.ms",
487
+ "oopi.org",
488
+ "opayq.com",
489
+ "ordinaryamerican.net",
490
+ "otherinbox.com",
491
+ "ourklips.com",
492
+ "outlawspam.com",
493
+ "ovpn.to",
494
+ "owlpic.com",
495
+ "pancakemail.com",
496
+ "paplease.com",
497
+ "pcusers.otherinbox.com",
498
+ "pepbot.com",
499
+ "pfui.ru",
500
+ "pimpedupmyspace.com",
501
+ "pjjkp.com",
502
+ "plexolan.de",
503
+ "poczta.onet.pl",
504
+ "politikerclub.de",
505
+ "poofy.org",
506
+ "pookmail.com",
507
+ "privacy.net",
508
+ "privy-mail.com",
509
+ "privymail.de",
510
+ "proxymail.eu",
511
+ "prtnx.com",
512
+ "prtz.eu",
513
+ "punkass.com",
514
+ "putthisinyourspamdatabase.com",
515
+ "pwrby.com",
516
+ "qq.com",
517
+ "quickinbox.com",
518
+ "rcpt.at",
519
+ "reallymymail.com",
520
+ "recode.me",
521
+ "recursor.net",
522
+ "recyclemail.dk",
523
+ "regbypass.com",
524
+ "regbypass.comsafe-mail.net",
525
+ "rejectmail.com",
526
+ "rhyta.com",
527
+ "rklips.com",
528
+ "rmqkr.net",
529
+ "royal.net",
530
+ "rppkn.com",
531
+ "rtrtr.com",
532
+ "s0ny.net",
533
+ "safe-mail.net",
534
+ "safersignup.de",
535
+ "safetymail.info",
536
+ "safetypost.de",
537
+ "sandelf.de",
538
+ "saynotospams.com",
539
+ "schafmail.de",
540
+ "selfdestructingmail.com",
541
+ "selfdestructingmail.org",
542
+ "SendSpamHere.com",
543
+ "sharklasers.com",
544
+ "shieldedmail.com",
545
+ "shiftmail.com",
546
+ "shitmail.me",
547
+ "shitmail.org",
548
+ "shitware.nl",
549
+ "shortmail.net",
550
+ "sibmail.com",
551
+ "sinnlos-mail.de",
552
+ "siteposter.net",
553
+ "skeefmail.com",
554
+ "slaskpost.se",
555
+ "slopsbox.com",
556
+ "slushmail.com",
557
+ "smashmail.de",
558
+ "smellfear.com",
559
+ "snakemail.com",
560
+ "sneakemail.com",
561
+ "snkmail.com",
562
+ "sofimail.com",
563
+ "sofort-mail.de",
564
+ "sogetthis.com",
565
+ "sohu.com",
566
+ "soodonims.com",
567
+ "spam4.me",
568
+ "spamavert.com",
569
+ "spambob.com",
570
+ "spambob.net",
571
+ "spambob.org",
572
+ "spambog.com",
573
+ "spambog.de",
574
+ "spambog.net",
575
+ "spambog.ru",
576
+ "spambox.info",
577
+ "spambox.irishspringrealty.com",
578
+ "spambox.us",
579
+ "spamcannon.com",
580
+ "spamcannon.net",
581
+ "spamcero.com",
582
+ "spamcon.org",
583
+ "spamcorptastic.com",
584
+ "spamcowboy.com",
585
+ "spamcowboy.net",
586
+ "spamcowboy.org",
587
+ "spamday.com",
588
+ "spamex.com",
589
+ "spamfree24.com",
590
+ "spamfree24.de",
591
+ "spamfree24.eu",
592
+ "spamfree24.info",
593
+ "spamfree24.net",
594
+ "spamfree24.org",
595
+ "spamfree.eu",
596
+ "spamgoes.in",
597
+ "spamgourmet.com",
598
+ "spamgourmet.net",
599
+ "spamgourmet.org",
600
+ "SpamHereLots.com",
601
+ "SpamHerePlease.com",
602
+ "spamhole.com",
603
+ "spamify.com",
604
+ "spaminator.de",
605
+ "spamkill.info",
606
+ "spam.la",
607
+ "spaml.com",
608
+ "spaml.de",
609
+ "spammotel.com",
610
+ "spamobox.com",
611
+ "spamoff.de",
612
+ "spamsalad.in",
613
+ "spamslicer.com",
614
+ "spamspot.com",
615
+ "spamstack.net",
616
+ "spam.su",
617
+ "spamthis.co.uk",
618
+ "spamthisplease.com",
619
+ "spamtrail.com",
620
+ "spamtroll.net",
621
+ "speed.1s.fr",
622
+ "spoofmail.de",
623
+ "squizzy.de",
624
+ "startkeys.com",
625
+ "stinkefinger.net",
626
+ "stop-my-spam.com",
627
+ "stuffmail.de",
628
+ "supergreatmail.com",
629
+ "supermailer.jp",
630
+ "superplatyna.com",
631
+ "superrito.com",
632
+ "superstachel.de",
633
+ "suremail.info",
634
+ "sweetxxx.de",
635
+ "tafmail.com",
636
+ "tagyourself.com",
637
+ "talkinator.com",
638
+ "tapchicuoihoi.com",
639
+ "teewars.org",
640
+ "teleworm.com",
641
+ "teleworm.us",
642
+ "tempalias.com",
643
+ "tempemail.biz",
644
+ "tempe-mail.com",
645
+ "tempemail.com",
646
+ "tempemail.co.za",
647
+ "TempEMail.net",
648
+ "temp.emeraldwebmail.com",
649
+ "tempinbox.com",
650
+ "tempinbox.co.uk",
651
+ "tempmail2.com",
652
+ "tempmaildemo.com",
653
+ "tempmail.it",
654
+ "tempomail.fr",
655
+ "temporarily.de",
656
+ "temporarioemail.com.br",
657
+ "temporaryemail.net",
658
+ "temporaryemail.us",
659
+ "temporaryforwarding.com",
660
+ "temporaryinbox.com",
661
+ "tempthe.net",
662
+ "tempymail.com",
663
+ "thanksnospam.info",
664
+ "thankyou2010.com",
665
+ "thecloudindex.com",
666
+ "thisisnotmyrealemail.com",
667
+ "throam.com",
668
+ "throwawayemailaddress.com",
669
+ "tilien.com",
670
+ "tittbit.in",
671
+ "tmailinator.com",
672
+ "toiea.com",
673
+ "tradermail.info",
674
+ "trash2009.com",
675
+ "trash2010.com",
676
+ "trash2011.com",
677
+ "trash-amil.com",
678
+ "trashdevil.com",
679
+ "trashdevil.de",
680
+ "trashemail.de",
681
+ "trash-mail.at",
682
+ "trashmail.at",
683
+ "trash-mail.com",
684
+ "trashmail.com",
685
+ "trash-mail.de",
686
+ "trashmail.de",
687
+ "trashmailer.com",
688
+ "trashmail.me",
689
+ "trashmail.net",
690
+ "trashmail.org",
691
+ "trashmail.ws",
692
+ "trashymail.com",
693
+ "trashymail.net",
694
+ "trbvm.com",
695
+ "trickmail.net",
696
+ "trillianpro.com",
697
+ "tryalert.com",
698
+ "turual.com",
699
+ "twinmail.de",
700
+ "tyldd.com",
701
+ "ubismail.net",
702
+ "uggsrock.com",
703
+ "umail.net",
704
+ "upliftnow.com",
705
+ "uplipht.com",
706
+ "uroid.com",
707
+ "valemail.net",
708
+ "venompen.com",
709
+ "veryrealemail.com",
710
+ "vidchart.com",
711
+ "viditag.com",
712
+ "viewcastmedia.com",
713
+ "viewcastmedia.net",
714
+ "viewcastmedia.org",
715
+ "vomoto.com",
716
+ "vubby.com",
717
+ "walala.org",
718
+ "walkmail.net",
719
+ "webemail.me",
720
+ "webm4il.info",
721
+ "webuser.in",
722
+ "wegwerfadresse.de",
723
+ "wegwerf-email-addressen.de",
724
+ "weg-werf-email.de",
725
+ "wegwerfemail.de",
726
+ "wegwerf-emails.de",
727
+ "wegwerfmail.de",
728
+ "wegwerfmail.info",
729
+ "wegwerfmail.net",
730
+ "wegwerfmail.org",
731
+ "wetrainbayarea.com",
732
+ "wetrainbayarea.org",
733
+ "wh4f.org",
734
+ "whatiaas.com",
735
+ "whatpaas.com",
736
+ "whatsaas.com",
737
+ "whopy.com",
738
+ "whyspam.me",
739
+ "wickmail.net",
740
+ "wilemail.com",
741
+ "willselfdestruct.com",
742
+ "winemaven.info",
743
+ "wronghead.com",
744
+ "wuzupmail.net",
745
+ "wuzup.net",
746
+ "wwwnew.eu",
747
+ "xagloo.com",
748
+ "xemaps.com",
749
+ "xents.com",
750
+ "xmaily.com",
751
+ "xoxy.net",
752
+ "xyzfree.net",
753
+ "yahoo.com.ph",
754
+ "yahoo.com.vn",
755
+ "yapped.net",
756
+ "yeah.net",
757
+ "yep.it",
758
+ "yogamaven.com",
759
+ "yomail.info",
760
+ "yopmail.com",
761
+ "yopmail.fr",
762
+ "yopmail.net",
763
+ "you-spam.com",
764
+ "ypmail.webarnak.fr.eu.org",
765
+ "yuurok.com",
766
+ "za.com",
767
+ "zehnminutenmail.de",
768
+ "zetmail.com",
769
+ "zippymail.info",
770
+ "zoaxe.com",
771
+ "zoemail.com",
772
+ "zoemail.net",
773
+ "zoemail.org",
774
+ "zomg.info"
775
+ ]
776
+ end
777
+
778
+ # Check if a mail is disposable (if it's domain is in the list)
779
+ def include?(mail)
780
+ list.include?(mail[/@(.+)/, 1])
781
+ end
782
+ end
783
+ end
@@ -0,0 +1,6 @@
1
+ ---
2
+ en:
3
+ errors:
4
+ attributes:
5
+ email:
6
+ undisposable: "domain is blocked"
@@ -0,0 +1,6 @@
1
+ ---
2
+ pt-BR:
3
+ errors:
4
+ attributes:
5
+ email:
6
+ undisposable: "é de um domínio bloqueado"
@@ -0,0 +1,9 @@
1
+ module DisposableMail
2
+ class Railtie < ::Rails::Railtie
3
+ initializer 'disposable_mail-i18n' do |app|
4
+ locales = app.config.i18n.available_locales || []
5
+ yml_pattern = locales.blank? ? '*' : "{#{locales.join(',')}}"
6
+ I18n.load_path.concat(Dir[File.join(File.dirname(__FILE__), 'locales', "#{yml_pattern}.yml")])
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ class UndisposableValidator < ActiveModel::EachValidator
2
+ def validate_each(record, attribute, value)
3
+ if DisposableMail.include?(value)
4
+ record.errors.add(attribute, :undisposable, options)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module DisposableMail
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class TestDisposableMail < MiniTest::Test
4
+ def test_list
5
+ assert_kind_of Array, DisposableMail.list
6
+ refute_empty DisposableMail.list
7
+
8
+ DisposableMail.list.each do |domain|
9
+ assert_kind_of String, domain
10
+ refute_match /[@\s]/, domain
11
+ end
12
+ end
13
+
14
+ def test_include
15
+ assert DisposableMail.include? "bot@mailinator.com"
16
+ assert DisposableMail.include? "fake@guerillamail.com"
17
+ assert DisposableMail.include? "johndoe@spamgourmet.com"
18
+
19
+ refute DisposableMail.include? "legit-person@yahoo.com"
20
+ refute DisposableMail.include? "someone@gmail.com"
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ require 'minitest/autorun'
2
+ require 'minitest/pride'
3
+ require 'disposable_mail'
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: disposable_mail
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Oscar Esgalha
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.6'
55
+ description: |
56
+ DisposableMail serves you a blacklist with domains from disposable mail services, like mailinator.com or guerrillamail.com.
57
+ The list can be used to prevent sending mails to these domains (which probably won't be open),
58
+ or to prevent dummy users registration in your website.
59
+ email:
60
+ - oscaresgalha@gmail.com
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - ".gitignore"
66
+ - ".gitmodules"
67
+ - ".travis.yml"
68
+ - Gemfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - disposable_mail.gemspec
73
+ - lib/disposable_mail.rb
74
+ - lib/disposable_mail/disposable.rb
75
+ - lib/disposable_mail/rails/locales/en.yml
76
+ - lib/disposable_mail/rails/locales/pt-BR.yml
77
+ - lib/disposable_mail/rails/railtie.rb
78
+ - lib/disposable_mail/rails/validator.rb
79
+ - lib/disposable_mail/version.rb
80
+ - test/test_disposable_mail.rb
81
+ - test/test_helper.rb
82
+ homepage: https://github.com/oesgalha/disposable_mail
83
+ licenses:
84
+ - MIT
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.4.5
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: A ruby gem with a list of disposable mail domains.
106
+ test_files:
107
+ - test/test_disposable_mail.rb
108
+ - test/test_helper.rb