Module: Philiprehberger::EmailValidator::Disposable

Defined in:
lib/philiprehberger/email_validator/disposable.rb

Overview

Disposable (throwaway) email domain detection.

Maintains a built-in list of commonly used disposable email providers. Useful for preventing sign-ups with temporary email addresses.

Constant Summary collapse

DOMAINS =

Built-in list of common disposable email domains.

Set.new(%w[
  mailinator.com
  guerrillamail.com
  guerrillamail.de
  guerrillamail.net
  guerrillamail.org
  tempmail.com
  temp-mail.org
  throwaway.email
  sharklasers.com
  guerrillamailblock.com
  grr.la
  dispostable.com
  yopmail.com
  yopmail.fr
  trashmail.com
  trashmail.me
  trashmail.net
  mailnesia.com
  maildrop.cc
  discard.email
  mailcatch.com
  fakeinbox.com
  mailnull.com
  tempail.com
  tempr.email
  einrot.com
  getnada.com
  jetable.org
  mohmal.com
  burpcollaborator.net
  mailsac.com
  harakirimail.com
  tmail.ws
  guerrillamail.info
  mytemp.email
  tempmailaddress.com
  mailforspam.com
  safetymail.info
  trashymail.com
  mailexpire.com
  tempinbox.com
  spamgourmet.com
  mintemail.com
  mailzilla.com
  anonbox.net
  binkmail.com
  bobmail.info
  chammy.info
  deadaddress.com
  despammed.com
  devnullmail.com
  dontreg.com
  e4ward.com
  emailigo.de
]).freeze

Class Method Summary collapse

Class Method Details

.disposable?(email) ⇒ Boolean

Check if an email address uses a known disposable domain.

Parameters:

  • email (String)

    the email address to check

Returns:

  • (Boolean)

    true if the domain is in the disposable list



73
74
75
76
77
78
79
80
# File 'lib/philiprehberger/email_validator/disposable.rb', line 73

def disposable?(email)
  return false unless email.is_a?(String)

  domain = extract_domain(email)
  return false if domain.nil?

  effective_domains.include?(domain.downcase)
end

.domain_disposable?(domain) ⇒ Boolean

Check if a domain is in the disposable list.

Parameters:

  • domain (String)

    the domain to check

Returns:

  • (Boolean)


86
87
88
89
90
# File 'lib/philiprehberger/email_validator/disposable.rb', line 86

def domain_disposable?(domain)
  return false unless domain.is_a?(String)

  effective_domains.include?(domain.strip.downcase)
end