Installation

Add this line to your Gemfile:

gem 'email_format_validator'

Then run:

bundle install

Usage

Add the following to one of your models:

validates :email, email_format: true

You can turn on RFC 822 compliant email verification by passing on:

validates :email, email_format: { rfc: true }

Be aware that this is disabled by default as websites will often need a less permissive email check than the RFC one (check out tests for more details).

You can also modify the default message ("is improperly formatted") if validation fails:

validates :email, email_format: { message: "is not well formatted" }

I18n

If you use I18n, the default key to translate is :improperly_formatted. So if you add to your User model:

validates :email, email_format: true

You can translate (or overload) the default message via for e.g. (in english): "en.activerecord.errors.models.user.attributes.email.improperly_formatted"

Tests

cd test
ruby email_format_validator_test.rb

Compatibility

Ruby 1.8 is not supported.

Credits

Regular Expression tests based on Comparing E-mail Address Validating Regular Expressions