Plugins - EmailAddressValidator

StarAdd to favorites

Email Address Validator

=================

Like any data, an e-mail address that you accept from a user cannot just be accepted at face value, it needs to be validated. It’s non-trivial to do this, though — not only do you have to make sure that it is formatted correctly (and this is harder than it first appears, as the rules for what constitute a valid e-mail address aren’t simple), you also have to make sure that the e-mail address will actually receive mail.

The EmailAddressValidator class tries, as much as possible without actually delivering an e-mail, to validate that an e-mail address is valid and will accept e-mail. It does this in three stages:

  • Ensure that the e-mail address is correctly formatted, using a regular expression derived from the ABNF specified in RFC2822 for maximum correctness. This takes very little resources.
  • Lookup MX records or A records for the domain part of the e-mail address, to make sure that there’s someone who might be willing to receive mail. This lookup requires network access and take a little bit of time, but can catch a lot of simple typos.
  • Make an attempt to deliver an e-mail to the address, stopping just before sending the message body. This is the most accurate way to discover whether an e-mail will be delivered, although it is still not 100% accurate (for example, Exchange servers will accept all mail at SMTP time and then generate a bounce, so an SMTP-time test won’t tell you anything useful there). However, most e-mail services will do the right thing, and it is the only way to detect a typo’d local part. It does take a little while to perform this lookup, though.

See the rdoc/ri documentation for full information on how to use this class, or just look in lib/email_address_validator/email_address_validator.rb.

Matt Palmer

http://theshed.hezmatt.org/email-address-validator

http://www.hezmatt.org/~mpalmer/darcs/email_address_validator.trunk

GPL

  • Currently 5.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Misc. Enhancements

Tags

Comments

Add a comment

Search Plugins

Query syntax

Plugins by Category

Sponsors

Rails Kits: Get Code. Get Moving.

Have a comment?