0.16
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Helper utility checking if given email address exists or not
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 1.5
 Project Readme

Gem Version

Email Verifier

Helper validation utility for checking if given email address is real.

Many times as developers we were putting validation statements for checking email addresses format. This gem will complete your existing setups with validator that actually connects with a given mail server and asks if the address in question exists for real.

It also:

  • supports Heroku
  • supports localization

Installation

Add this line to your application's Gemfile:

# place it at the bottom of rails/activesupport if you're working with them.
gem 'email_verifier'

And then execute:

$ bundle

Or install it yourself as:

$ gem install email_verifier

Usage

To get info about realness of given email address, email_verifier connects with a mail server that email's domain points to and pretends to send an email. Some smtp servers will not allow you to do this if you will not present yourself as a real user.

First thing you need to set up is placing something like this either in initializer or in application.rb file:

EmailVerifier.config do |config|
  config.verifier_email = "realname@realdomain.com"
end

Then just put this in your model e. g:

validates_email_realness_of :email

Or - if you'd like to use it outside of your models:

EmailVerifier.check(youremail)

This method will return true or false, or will throw an exception with nicely detailed info about what's wrong.

Important: problems when using locally

When you're trying to use it from an IP that a server either cannot reach or trust (in any way) - then it returns 421 service not available (connection refused, too many connections) instead of letting you connect. Because of this you should most probably always be using it on a machine that the other SMTP server can reach.

Disabling on Test

If you are using Rails in test environment, the check will always succeed, so that your CI servers will not try to contact SMTP servers. You can change that behavior in the configuration block:

EmailVerifier.config do |config|
  config.test_mode = Rails.env.test?
end

Customizing messages

Add these lines to your locale file in config/locales:

it:
  errors:
    messages:
      email_verifier:
        email_not_real: must point to a real mail account
        out_of_mail_server: appears to point to dead mail server
        no_mail_server: appears to point to domain which doesn't handle e-mail
        failure: could not be checked if is real
        exception: could not be sent

Credits

Email Verifier is maintained and funded by the End Point Corporation

Please send questions to kamil@endpoint.com

Contributors

Contributing yourself

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request