Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergeypedan/burner_email_db
DB of burner email domains, packaged as a Ruby gem
https://github.com/sergeypedan/burner_email_db
burner-email db gem ruby
Last synced: about 2 months ago
JSON representation
DB of burner email domains, packaged as a Ruby gem
- Host: GitHub
- URL: https://github.com/sergeypedan/burner_email_db
- Owner: sergeypedan
- Created: 2021-02-07T08:10:11.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-05T18:42:59.000Z (over 1 year ago)
- Last Synced: 2024-10-31T14:40:09.976Z (2 months ago)
- Topics: burner-email, db, gem, ruby
- Language: Ruby
- Homepage: https://sergeypedan.ru/open_source_projects/burner-email-db
- Size: 1.75 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
Awesome Lists containing this project
README
# Burner email DB
[![Gem Version](https://badge.fury.io/rb/burner_email_db.svg)](https://badge.fury.io/rb/burner_email_db)
[![Build Status](https://travis-ci.org/sergeypedan/burner_email_db.svg?branch=master)](https://travis-ci.org/sergeypedan/burner_email_db)A very long list (119 261) of burner email domains, packaged for Ruby gems.
## Sourse
Copied with much respect from
- Wes Bos’s [repo](https://github.com/wesbos/burner-email-providers)
- https://disposable.github.io/disposable-email-domains/domains.txt
- https://github.com/disposable/disposable/blob/master/blacklist.txt## Installation
Add this line to your application's `Gemfile`:
```ruby
gem "burner_email_db"
```## Usage
### Just list everything
```ruby
BurnerEmailDB.domains #=> ["0-00.usa.cc", "0-180.com", ...]
```### ActiveModel validation
```ruby
class User
validates :email, exclusion: { in: BurnerEmailDB.domains }
end
```### ActiveModel validator
You could write a validator:
```ruby
class BurnerEmailValidator < ActiveModel::EachValidatordef validate_each(record, attribute_name, address)
return if address.blank? # validate presence separately
record.errors.add attribute_name, :disposable_email if disposable?(address)
endprivate def disposable?(address_with_unknown_case)
address = address_with_unknown_case.downcase
BurnerEmailDB.domains.any? { |burner_domain| address.include? burner_domain }
endend
```Add translations:
```yaml
---
ru:
errors:
messages:
disposable_email: в сервисе одноразовых email-адресов
```and then use it like so:
```ruby
class User
validates :email, presence: true, burner_email: true
end
```### Dry validation
WIP, I promise, Piotr!
## Alternatives
- https://github.com/disposable/disposable
- https://open.kickbox.io## How to add new
1. Copy the new domains into a file `./new-domains.txt`
1. Run `ruby add.rb`