ActiveModel email validation. Checks MX records, sub address, regex, whitelisted and blacklisted check
Add this line to your application's Gemfile:
gem 'rails_email_checker'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rails_email_checker
To validate that the domain has a good format (regex):
class User < ActiveRecord::Base
validates_email :email, formatted: true
end
To validate that the domain is not blacklisted:
class User < ActiveRecord::Base
validates_email :email, blacklisted: true
end
To validate that the domain has a MX record:
class User < ActiveRecord::Base
validates_email :email, recorded: true
end
To validate that email is not sub addressed:
class User < ActiveRecord::Base
validates_email :email, no_sub_addressed: true
end
OR
Use like that
class User < ActiveRecord::Base
validates :email, email: { no_sub_addressed: true, recorded: true, blacklisted: true }
end
address = RailsEmailChecker.address('[email protected]') # or RailsEmailChecker::Address.new('[email protected]')
address.formatted? # => true
address.sub_addressed? # => false
address.recorded? # => true
address.whitelisted? # => false
address.blacklisted? # => false
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.
The gem is available as open source under the terms of the MIT License.