https://github.com/opengems/rails_email_checker
ActiveModel email validation. Checks MX records, sub address, regex, whitelisted and blacklisted check
https://github.com/opengems/rails_email_checker
activemodel activerecord email-validation email-verification fake-emails rails rails-validations ruby
Last synced: 12 months ago
JSON representation
ActiveModel email validation. Checks MX records, sub address, regex, whitelisted and blacklisted check
- Host: GitHub
- URL: https://github.com/opengems/rails_email_checker
- Owner: OpenGems
- License: mit
- Created: 2020-02-15T17:37:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-17T02:37:35.000Z (about 3 years ago)
- Last Synced: 2025-04-22T17:21:32.659Z (about 1 year ago)
- Topics: activemodel, activerecord, email-validation, email-verification, fake-emails, rails, rails-validations, ruby
- Language: Ruby
- Size: 437 KB
- Stars: 17
- Watchers: 4
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# RailsEmailChecker
[](https://badge.fury.io/rb/redis_web_manager)
[](https://codeclimate.com/github/OpenGems/rails_email_checker/maintainability)
[](https://travis-ci.org/OpenGems/redis_web_manager)
[](https://hakiri.io/github/OpenGems/redis_web_manager/master)

[](https://coveralls.io/github/OpenGems/rails_email_checker?branch=master)
ActiveModel email validation. Checks MX records, sub address, regex, whitelisted and blacklisted check
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'rails_email_checker'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install rails_email_checker
## Usage
### Use with ActiveModel
To validate that the domain has a good format (regex):
```ruby
class User < ActiveRecord::Base
validates_email :email, formatted: true
end
```
To validate that the domain is not blacklisted:
```ruby
class User < ActiveRecord::Base
validates_email :email, blacklisted: true
end
```
To validate that the domain has a MX record:
```ruby
class User < ActiveRecord::Base
validates_email :email, recorded: true
end
```
To validate that email is not sub addressed:
```ruby
class User < ActiveRecord::Base
validates_email :email, no_sub_addressed: true
end
```
OR
Use like that
```ruby
class User < ActiveRecord::Base
validates :email, email: { no_sub_addressed: true, recorded: true, blacklisted: true }
end
```
### Use without ActiveModel
```ruby
address = RailsEmailChecker.address('test@gmail.com') # or RailsEmailChecker::Address.new('test@gmail.com')
address.formatted? # => true
address.sub_addressed? # => false
address.recorded? # => true
address.whitelisted? # => false
address.blacklisted? # => false
```
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/OpenGems/rails_email_checker. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).