disposable_mail 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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