Socket
Book a DemoInstallSign in
Socket

activemodel-email_address_validator

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

activemodel-email_address_validator

3.0.0
bundlerRubygems
Version published
Maintainers
1
Created
Source

Email Address Validator

ActiveModel-style email address format validator

Code Climate Coverage Status

Whenever I have wanted to validate an email address it has been because I wanted to be somewhat certain I can send an email to someone. Usually this happens as part of a signup procedure.

At this point I have pretty much one criteria:

  • Don't reject a valid email address realistically in use by a potential user. Err on the side of accepting too much.

Quite frankly, I don't care about the RFC at this point, neither does the user. I care that my users can enter their email address and get on with using my product. I appreciate it if the application catches any misspellings of their email addresses, though - this is the opportune moment for them to correct it.

Requirements

  • Should not accept local email addresses: No user ever needed to sign up using "postmaster@localhost" or "bob@1.2.3.4" even though they are perfectly valid email addresses.
  • Must work with I18n like Rails' built-in validators do. If not configured otherwise, the default translation key must be :invalid.

Usage examples

Simplest case

validates :email, :email_address => true

Bring your own logic

If the default behavior isn't enough for you, you can include a custom rule for email addresses. For example to match the email addresses against a regular expression:

validates :email, :email_address => {:with => /.+@.+\..+/}

Or you could go beyound simple matching and validate that all email adresses belong to the same company:

validates :email, :email_address => {
  :with => proc { |address| address.end_with?("@substancelab.com") }
}

You can even match against multiple rules, in which case all rules must pass:

validates :email, :email_address => {
  :with => [
    proc { |address| address.match(/.+@.+\..+/) },
    proc { |address| !address.end_with?("@outlook.com") },
  ]
}

Do note that supplying your own rules means that the default email address validation isn't run - you're on your own, basically.

Verify domain (still to be done - pull request, anybody?)

This also checks that the domain actually has an MX record. Note this might take a while because of DNS lookups.

validates :email, :email_address => {:mx => true}

Installation

Add this line to your application's Gemfile:

gem 'activemodel-email_address_validator'

And then execute:

$ bundle

Or install it yourself as:

$ gem install activemodel-email_address_validator

Resources

Other libraries

Serverside

Clientside

Contributing

FAQs

Package last updated on 03 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.