Skip to content

sergeypedan/burner_email_db

Repository files navigation

Burner email DB

Gem Version Build Status

A very long list (119 261) of burner email domains, packaged for Ruby gems.

Sourse

Copied with much respect from

Installation

Add this line to your application's Gemfile:

gem "burner_email_db"

Usage

Just list everything

BurnerEmailDB.domains #=> ["0-00.usa.cc", "0-180.com", ...]

ActiveModel validation

class User
  validates :email, exclusion: { in: BurnerEmailDB.domains }
end

ActiveModel validator

You could write a validator:

class BurnerEmailValidator < ActiveModel::EachValidator

  def validate_each(record, attribute_name, address)
    return if address.blank? # validate presence separately
    record.errors.add attribute_name, :disposable_email if disposable?(address)
  end

  private def disposable?(address_with_unknown_case)
    address = address_with_unknown_case.downcase
    BurnerEmailDB.domains.any? { |burner_domain| address.include? burner_domain }
  end

end

Add translations:

---
ru:
  errors:
    messages:
      disposable_email: в сервисе одноразовых email-адресов

and then use it like so:

class User
  validates :email, presence: true, burner_email: true
end

Dry validation

WIP, I promise, Piotr!

Alternatives

How to add new

  1. Copy the new domains into a file ./new-domains.txt
  2. Run ruby add.rb

Releases

No releases published

Packages

No packages published