nondisposable 0.3.0 → 0.6.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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +73 -0
  3. data/README.md +305 -3
  4. data/Rakefile +5 -0
  5. data/app/models/nondisposable/disposable_domain.rb +53 -34
  6. data/app/models/nondisposable/source_snapshot.rb +66 -0
  7. data/data/email_providers.txt +276 -0
  8. data/data/iana_tlds.txt +1439 -0
  9. data/data/known_typo_domains.txt +99 -0
  10. data/data/never_disposable.txt +480 -0
  11. data/data/privacy_relays.txt +42 -0
  12. data/data/public_suffix_list.dat +16571 -0
  13. data/gemfiles/rails_7.2.gemfile +1 -0
  14. data/gemfiles/rails_8.0.gemfile +1 -0
  15. data/gemfiles/rails_8.1.gemfile +1 -0
  16. data/lib/generators/nondisposable/install_generator.rb +1 -0
  17. data/lib/generators/nondisposable/templates/create_nondisposable_source_snapshots.rb.erb +42 -0
  18. data/lib/generators/nondisposable/templates/nondisposable.rb +67 -1
  19. data/lib/generators/nondisposable/upgrade_generator.rb +43 -0
  20. data/lib/nondisposable/confirmable_email.rb +75 -0
  21. data/lib/nondisposable/domain.rb +238 -0
  22. data/lib/nondisposable/domain_list_updater.rb +510 -88
  23. data/lib/nondisposable/email_validator.rb +101 -3
  24. data/lib/nondisposable/known_typos.rb +64 -0
  25. data/lib/nondisposable/precedence.rb +209 -0
  26. data/lib/nondisposable/public_suffix.rb +147 -0
  27. data/lib/nondisposable/public_suffix_list_updater.rb +88 -0
  28. data/lib/nondisposable/source.rb +233 -0
  29. data/lib/nondisposable/source_fetcher.rb +69 -0
  30. data/lib/nondisposable/source_merge.rb +127 -0
  31. data/lib/nondisposable/suggestion.rb +336 -0
  32. data/lib/nondisposable/tld.rb +190 -0
  33. data/lib/nondisposable/tld_list_updater.rb +101 -0
  34. data/lib/nondisposable/version.rb +1 -1
  35. data/lib/nondisposable.rb +153 -6
  36. data/lib/tasks/nondisposable.rake +66 -0
  37. metadata +24 -2
@@ -0,0 +1,99 @@
1
+ # Reviewed typo domains, used by Nondisposable::KnownTypos.
2
+ #
3
+ # <typo domain> <the provider it is a misspelling of>
4
+ #
5
+ # These are the ONLY lookalike domains the validator refuses outright (when
6
+ # `reject_lookalike_domains` is on). Everything else one edit from a provider
7
+ # is a guess, and a guess only ever produces a confirmable error. So the bar
8
+ # for an entry is high, and it is the same bar for every entry:
9
+ #
10
+ # 1. The domain is a misspelling of a provider in data/email_providers.txt.
11
+ # 2. There is direct evidence that nobody has a real mailbox there, of one of
12
+ # these kinds:
13
+ # - it redirects to the provider, or is held on the provider's own DNS
14
+ # (a defensive registration: yaho.com, homail.com);
15
+ # - it is parked or for sale through a parking/marketplace network
16
+ # (nameservers or lander of parkingcrew, sedo, bodis, afternic,
17
+ # above.com…), or publishes a Null MX (RFC 7505: "accepts no mail");
18
+ # - it is a typosquat: it redirects visitors to an unrelated monetised
19
+ # page, or its mail goes to a catch-all run for misspelled domains;
20
+ # - it is registered but has no MX, A or AAAA record, so mail to it
21
+ # cannot be delivered at all (RFC 5321 §5.1 has nothing to fall
22
+ # back to). Every lookup must have answered NOERROR — recorded in the
23
+ # evidence's dns_status column, and the labelling script refuses the
24
+ # verdict otherwise — never inferred from a lookup that timed out.
25
+ # 3. The evidence is recorded, row by row, in test/fixtures/lookalike_corpus.csv
26
+ # (collected by script/collect_lookalike_evidence.rb on 2026-10-17), and
27
+ # the suite fails if an entry here loses its `typo` row there.
28
+ #
29
+ # What is NOT enough on its own: "no MX record" (SMTP falls back to the A
30
+ # record), a blank homepage, or a short name. When the evidence is ambiguous
31
+ # the domain stays OFF this list and remains confirmable — a wrong entry here
32
+ # is a person who cannot sign up and cannot say "yes, this is my address".
33
+ #
34
+ # Never generated, never bulk-imported. Add an entry with its evidence row.
35
+
36
+ # --- frontier.com ---
37
+ ffrontier.com frontier.com
38
+
39
+ # --- globo.com ---
40
+ globh.com globo.com
41
+
42
+ # --- gmail.com ---
43
+ gamail.com gmail.com
44
+ gimail.com gmail.com
45
+ gm4il.com gmail.com
46
+ gmai.com gmail.com
47
+ gmaii.com gmail.com
48
+ gmail.cm gmail.com
49
+ gmail.co gmail.com
50
+ gmaio.com gmail.com
51
+ gmal.com gmail.com
52
+ gmali.com gmail.com
53
+ gmeil.com gmail.com
54
+ gmial.com gmail.com
55
+ gmmail.com gmail.com
56
+ gmuil.com gmail.com
57
+ hmail.com gmail.com
58
+ jmail.com gmail.com
59
+
60
+ # --- hotmail.com ---
61
+ hitmail.com hotmail.com
62
+ homail.com hotmail.com
63
+ hotamil.com hotmail.com
64
+ hotmai.com hotmail.com
65
+ hotmal.com hotmail.com
66
+ hotmasil.com hotmail.com
67
+ hotmial.com hotmail.com
68
+ otmail.com hotmail.com
69
+
70
+ # --- icloud.com ---
71
+ icloude.com icloud.com
72
+
73
+ # --- outlook.com ---
74
+ autlook.com outlook.com
75
+ outlok.com outlook.com
76
+ outloo.com outlook.com
77
+
78
+ # --- runbox.com ---
79
+ rfunbox.com runbox.com
80
+
81
+ # --- yahoo.com ---
82
+ yahho.com yahoo.com
83
+ yaho.com yahoo.com
84
+ yaoo.com yahoo.com
85
+ yhaoo.com yahoo.com
86
+ yhoo.com yahoo.com
87
+
88
+ # --- yahoo.de ---
89
+ yaho.de yahoo.de
90
+
91
+ # --- yahoo.it ---
92
+ yhoo.it yahoo.it
93
+
94
+ # --- yandex.ru ---
95
+ ayndex.ru yandex.ru
96
+ yandez.ru yandex.ru
97
+
98
+ # --- zoho.com ---
99
+ zoho.co zoho.com
@@ -0,0 +1,480 @@
1
+ # Domains that are NEVER disposable, whatever any blocklist says.
2
+ #
3
+ # A false positive is a real person who cannot sign up, so this list outranks
4
+ # every upstream source and the host's own `additional_domains` (see the
5
+ # precedence table in the README). It protects each domain's whole namespace:
6
+ # `bak.rr.com` is covered by `rr.com`.
7
+ #
8
+ # Effective set at runtime = this file + data/email_providers.txt, minus
9
+ # data/privacy_relays.txt. Relays are deliberately NOT here: whether to accept
10
+ # them is a policy (`config.block_privacy_relays`), and a permanent exemption
11
+ # would make `block_privacy_relays = true` silently do nothing.
12
+ #
13
+ # Every entry needs evidence. A domain listed here and later shown to be a
14
+ # throwaway is a recall bug; a real provider missing from here is a lockout.
15
+ # Precision wins ties. Hosts add their own with `config.excluded_domains`.
16
+
17
+ # --- Real providers found inside upstream blocklists (measured 2026-10-17) ---
18
+ # Each was carried by at least one public disposable list. Evidence: the
19
+ # provider/ISP named on each line. Measurement: docs/evidence/2026-10-17-multi-source-measurement.md
20
+ gmx.es # GMX Spain (United Internet); listed by amieiro
21
+ 21cn.com # China Telecom webmail; listed by disposable-email-domains (the default source), unkn0w
22
+ tom.com # TOM Group webmail (mail.tom.com); listed by mailchecker, wesbos
23
+ wo.com.cn # China Unicom mail; listed by disposable/disposable
24
+ odn.ad.jp # ODN, SoftBank's Japanese ISP; listed by disposable/disposable, groundcat
25
+ uqmobile.jp # UQ mobile carrier mail (KDDI); listed by disposable/disposable, groundcat
26
+ mtu-net.ru # MTU-Intel, Moscow ISP; listed by mailchecker, disposable/disposable, groundcat
27
+ sanook.com # Sanook, Thai portal with webmail; listed by disposable/disposable, groundcat
28
+ 51.com # 51.com, Chinese portal with webmail; listed by mailchecker, disposable/disposable
29
+ sdf.org # SDF Public Access UNIX System (since 1987), member mailboxes; listed by mailchecker, wesbos, disposable/disposable
30
+
31
+ # --- Paid mailbox providers ---
32
+ # Source: disposable/disposable `mailservices.json` (MIT), every host of an entry
33
+ # with "type": "paid". Nobody pays for a throwaway inbox.
34
+ 123mail.org
35
+ 150mail.com
36
+ 150ml.com
37
+ 16mail.com
38
+ 2-mail.com
39
+ 4email.net
40
+ 50mail.com
41
+ 7.at
42
+ abimail.com
43
+ actimail.com
44
+ adminteam.com
45
+ adriamail.com
46
+ airpost.net
47
+ ak47.hu
48
+ alemail.com
49
+ allmail.net
50
+ americanemail.com
51
+ androidmail.com
52
+ apomail.com
53
+ artmail.net
54
+ arztmail.com
55
+ austinemail.com
56
+ austria-mail.com
57
+ avh.hu
58
+ baselmail.com
59
+ bayernemail.com
60
+ bccmail.com
61
+ berlinemail.com
62
+ bestemail.com
63
+ bestmail.com
64
+ bestmail.us
65
+ billionairemail.com
66
+ bitcoinemail.com
67
+ blackmail.net
68
+ bossmail.net
69
+ bradleymail.com
70
+ brucemail.com
71
+ btinternet.com
72
+ bulkmail.net
73
+ canadamail.net
74
+ cannabismail.com
75
+ ccemail.com
76
+ chez.com
77
+ cia.hu
78
+ clubemail.com
79
+ cluemail.com
80
+ coder.hu
81
+ com-mail.com
82
+ companymail.net
83
+ cracker.hu
84
+ csinibaba.hu
85
+ cubemail.com
86
+ dadmail.com
87
+ deutschlandmail.com
88
+ direct-mail.com
89
+ e--mail.com
90
+ e-mail.dk
91
+ e-mail.net
92
+ e-mailadresse.com
93
+ e-mailing.net
94
+ e-mailserver.com
95
+ eavholdings.com
96
+ einschreiben.com
97
+ elitemail.org
98
+ email-account.com
99
+ email-management.com
100
+ email-me.com
101
+ email-online.com
102
+ email-service.com
103
+ email-tr.com
104
+ email.it
105
+ email123.com
106
+ emailaddress.net
107
+ emailberlin.com
108
+ emailchicago.com
109
+ emailcloud.net
110
+ emailcorner.net
111
+ emaildienst.com
112
+ emaildienste.com
113
+ emailengine.net
114
+ emailengine.org
115
+ emailer.net
116
+ emailetiquette.com
117
+ emailgroups.net
118
+ emailhamburg.com
119
+ emailhawaii.com
120
+ emailhosting.net
121
+ emailit.com
122
+ emaillogin.net
123
+ emailme.net
124
+ emailmemail.com
125
+ emailnow.com
126
+ emailonline.net
127
+ emailplus.org
128
+ emailpoint.com
129
+ emailprime.com
130
+ emailpro.com
131
+ emailprofi.com
132
+ emailq.com
133
+ emailrealestate.com
134
+ emailsms.com
135
+ emailstorage.com
136
+ emailsucks.com
137
+ emailuser.net
138
+ emailwithpersonality.com
139
+ eml.cc
140
+ eposta.hu
141
+ erosmail.com
142
+ espmail.com
143
+ ewebmail.com
144
+ exclusivemail.co.za
145
+ expomail.com
146
+ f-m.fm
147
+ fast-email.com
148
+ fast-mail.org
149
+ fastem.com
150
+ fastemail.us
151
+ fastemailer.com
152
+ fastest.cc
153
+ fastimap.com
154
+ fastmail.ca
155
+ fastmail.cn
156
+ fastmail.co.uk
157
+ fastmail.com.au
158
+ fastmail.es
159
+ fastmail.fm
160
+ fastmail.im
161
+ fastmail.in
162
+ fastmail.jp
163
+ fastmail.mx
164
+ fastmail.net
165
+ fastmail.nl
166
+ fastmail.se
167
+ fastmail.to
168
+ fastmail.tw
169
+ fastmail.us
170
+ fastmailbox.net
171
+ fastmessaging.com
172
+ fatmail.com
173
+ fbi.hu
174
+ fea.st
175
+ firstmailer.com
176
+ fischermail.com
177
+ floweremail.com
178
+ fmail.co.uk
179
+ fmailbox.com
180
+ fmgirl.com
181
+ fmguy.com
182
+ frankenmail.com
183
+ free.fr
184
+ freeler.nl
185
+ freememail.com
186
+ freestart.hu
187
+ fsmail.com
188
+ ftml.net
189
+ gamemail.com
190
+ gay-mail.com
191
+ gaymail.net
192
+ getmemail.com
193
+ globalmail.com
194
+ globalmailservices.com
195
+ gratisemail.com
196
+ greatemail.com
197
+ h-mail.us
198
+ hailmail.net
199
+ hallomail.com
200
+ hamburgemail.com
201
+ happyemail.com
202
+ harvardmail.com
203
+ hauckemail.com
204
+ hauckmail.com
205
+ hausverwalter.net
206
+ hello.net.au
207
+ hemail.net
208
+ hey.com
209
+ homemail.co.za
210
+ hot-mail.net
211
+ hot.ee
212
+ hotmailaddress.com
213
+ hotmailbox.com
214
+ hotmailr.com
215
+ i.at
216
+ igotemail.com
217
+ iitalia.com
218
+ ilovemail.com
219
+ imail.net
220
+ imap-mail.com
221
+ imap.cc
222
+ imapmail.org
223
+ inbox.com
224
+ india-mail.com
225
+ inoutbox.com
226
+ internet-e-mail.com
227
+ internet-mail.org
228
+ internetemails.net
229
+ internetmailing.net
230
+ iol.it
231
+ irj.hu
232
+ it.de
233
+ ivanova.com
234
+ iwebmail.net
235
+ jakuza.hu
236
+ jetemail.net
237
+ johnsmail.com
238
+ jubii.dk
239
+ jubiimail.dk
240
+ justemail.net
241
+ kgb.hu
242
+ kpnmail.nl
243
+ kr-mail.com
244
+ ladiesemail.com
245
+ lamer.hu
246
+ lawyer-email.com
247
+ letsemail.com
248
+ letterboxes.org
249
+ levele.hu
250
+ lewismail.com
251
+ libertyemail.com
252
+ likemail.com
253
+ loginmail.com
254
+ lopezmail.com
255
+ luukku.com
256
+ luxemail.com
257
+ macmail.com
258
+ macmail.net
259
+ maffia.hu
260
+ magicmail.co.za
261
+ mail-central.com
262
+ mail-net.com
263
+ mail-office.com
264
+ mail-page.com
265
+ mail.net
266
+ mail5.net
267
+ mailandftp.com
268
+ mailapp.net
269
+ mailarabia.com
270
+ mailas.com
271
+ mailaustria.com
272
+ mailbase.net
273
+ mailbolt.com
274
+ mailbox.co.za
275
+ mailbox.hu
276
+ mailboxus.com
277
+ mailc.net
278
+ mailcan.com
279
+ maildump.com
280
+ mailemail.com
281
+ mailforce.net
282
+ mailftp.com
283
+ mailgermany.com
284
+ mailhaven.com
285
+ mailingaddress.org
286
+ mailings.net
287
+ mailite.com
288
+ maillbox.com
289
+ mailler.com
290
+ mailmail.net
291
+ mailmen.com
292
+ mailmight.com
293
+ mailnames.com
294
+ mailnew.com
295
+ mailoffice.net
296
+ mailro.com
297
+ mailsent.net
298
+ mailservice.ms
299
+ mailtiger.com
300
+ mailtr.com
301
+ mailuno.com
302
+ mailup.net
303
+ mailus.com
304
+ mailworks.org
305
+ me-mail.com
306
+ memail-ag.com
307
+ memail-dns.com
308
+ memail-dns.net
309
+ memail-inc.com
310
+ memail.com
311
+ memail.net
312
+ memail24.com
313
+ memail360.com
314
+ memail365.com
315
+ memailag.com
316
+ memailbox.com
317
+ memaildns.com
318
+ memaildns.net
319
+ memailer.com
320
+ memailfree.com
321
+ memailinc.com
322
+ memailing.com
323
+ memailme.com
324
+ memailone.com
325
+ memailplus.com
326
+ memails.com
327
+ memailteam.com
328
+ memailteams.com
329
+ memailup.com
330
+ memailusa.com
331
+ meomail.com
332
+ meymail.com
333
+ mi-mail.com
334
+ millionairemail.com
335
+ mimail.net
336
+ mimails.com
337
+ mintmail.com
338
+ ml1.net
339
+ mm.st
340
+ momail.com
341
+ mremail.com
342
+ murphymail.com
343
+ musicmail.com
344
+ my-memail.com
345
+ my-memail.net
346
+ myemailaccount.com
347
+ myemailapp.com
348
+ myfastmail.com
349
+ mymacmail.com
350
+ mypersonalemail.com
351
+ mywebmail.com
352
+ mywebmail.net
353
+ neumail.com
354
+ newmail.net
355
+ newyorkmail.net
356
+ nortonemail.com
357
+ online-email.com
358
+ online.ee
359
+ openmailbox.com
360
+ oromail.com
361
+ ownmail.net
362
+ pascha.net
363
+ paxemail.com
364
+ petml.com
365
+ pfalzmail.com
366
+ platinmail.com
367
+ platinummail.com
368
+ pocketmail.com
369
+ policemail.com
370
+ post-box.com
371
+ postinbox.com
372
+ postpro.net
373
+ ppemail.com
374
+ premiummail.com
375
+ primposta.com
376
+ primposta.hu
377
+ privateemail.net
378
+ pro.hu
379
+ proinbox.com
380
+ promemail.com
381
+ promessage.com
382
+ protonmailbox.com
383
+ ravemail.co.za
384
+ realemail.net
385
+ reallyfast.biz
386
+ reallyfast.info
387
+ remail.net
388
+ reply.hu
389
+ rexmail.com
390
+ rheinmail.com
391
+ rickymail.com
392
+ riomail.com
393
+ routemail.com
394
+ rumail.com
395
+ rushpost.com
396
+ saarmail.com
397
+ saleemail.com
398
+ salesemail.com
399
+ schoolemail.com
400
+ secure-mail.net
401
+ securemailservice.com
402
+ securememail.com
403
+ securewebmail.com
404
+ send.hu
405
+ sent.as
406
+ sent.at
407
+ sent.com
408
+ servicio.net
409
+ setmail.com
410
+ shemail.net
411
+ shotgun.hu
412
+ simplyme.com
413
+ simplymemail.com
414
+ simplymymail.com
415
+ skiff.com
416
+ skizo.hu
417
+ sniper.hu
418
+ socialteam.net
419
+ sol.dk
420
+ soldier.hu
421
+ southafricamail.com
422
+ speedpost.net
423
+ speedymail.org
424
+ ssl-mail.com
425
+ stanfordemail.com
426
+ starmail.co.za
427
+ starmail.org
428
+ studentcenter.org
429
+ studentenwohnheim.com
430
+ sudanmail.net
431
+ swift-mail.com
432
+ swissemail.com
433
+ tamail.com
434
+ the-fastest.net
435
+ the-quickest.com
436
+ thecricket.co.za
437
+ theend.hu
438
+ thegolf.co.za
439
+ theinternetemail.com
440
+ thepub.co.za
441
+ therugby.co.za
442
+ tuckermail.com
443
+ tuemail.com
444
+ unimail.com
445
+ unimail.net
446
+ universityemail.com
447
+ universitymail.com
448
+ us-mail.com
449
+ usawebmail.com
450
+ usmilitarymail.com
451
+ veryfast.biz
452
+ veryspeedy.net
453
+ vip-mail.com
454
+ vip.vip
455
+ vipmail.net
456
+ warpmail.net
457
+ warrior.hu
458
+ webmail.co.za
459
+ webmailapp.com
460
+ webmailplus.com
461
+ webmailportal.com
462
+ webmemail.com
463
+ websurfer.co.za
464
+ wedmail.com
465
+ wemail.com
466
+ wemail.net
467
+ whatsmail.com
468
+ wiremail.com
469
+ workmail.co.za
470
+ worldemail.net
471
+ xmemail.com
472
+ xsmail.com
473
+ xtramail.com
474
+ xtrememail.com
475
+ yepmail.net
476
+ youhavemail.com
477
+ your-mail.com
478
+ yourpersonalemail.com
479
+ youtubestar.com
480
+ zedmail.com
@@ -0,0 +1,42 @@
1
+ # Privacy relays: forwarding addresses in front of a REAL, long-lived inbox.
2
+ #
3
+ # They are not throwaways (the person behind one gets your email for as long as
4
+ # they keep the alias), but they do let one person hold many addresses. Whether
5
+ # that is acceptable is a policy decision, so it is a setting:
6
+ #
7
+ # config.block_privacy_relays = false # default: relays are ALLOWED, even if a source lists them
8
+ # config.block_privacy_relays = true # relays are REFUSED, even if no source lists them
9
+ #
10
+ # Each domain covers its subdomains (addy.io hands out `alias@username.anonaddy.com`).
11
+ # Source: disposable/disposable `mailservices.json` (MIT), entries with
12
+ # "type": "forwarding", plus Apple's Hide My Email.
13
+
14
+ # Apple Hide My Email
15
+ privaterelay.appleid.com
16
+
17
+ # DuckDuckGo Email Protection
18
+ duck.com
19
+
20
+ # Firefox Relay
21
+ mozmail.com
22
+
23
+ # addy.io (formerly AnonAddy)
24
+ addy.io
25
+ anonaddy.com
26
+ anonaddy.me
27
+
28
+ # SimpleLogin (Proton), including Proton Pass aliases
29
+ simplelogin.com
30
+ simplelogin.fr
31
+ simplelogin.co
32
+ simplelogin.io
33
+ silomails.com
34
+ slmails.com
35
+ aleeas.com
36
+ slmail.me
37
+ 8shield.net
38
+ dralias.com
39
+ passinbox.com
40
+ passfwd.com
41
+ passmail.com
42
+ passmail.net