This is a simple gem for Ruby that simplifies validating email addresses. It conforms with RFC2822.
Here comes a quick code sample. Currently no docs.
require 'rfc822' # To test if whole string is an email... ugly way # (returns 0 on success, nil on failure): "[email protected]".dup.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_WHOLE # or nice one (returns true/false): "[email protected]".is_email? # To test if string contains an email... ugly way # (returns 0 on success, nil on failure): "demo [email protected]".dup.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_PART # or nice one (returns true/false): "demo [email protected]".contains_email? # To scan for emails within a string... ugly way # (returns an array): "something [email protected] xyz".dup.force_encoding("BINARY").scan(RFC822::EMAIL_REGEXP_PART) # or nice one (also returns an array): "something [email protected] xyz".scan_for_emails
If you omit ‘.dup.force_encoding(“BINARY”)` part, you can run into exceptions if someone passes non-ASCII email (see github.com/mspanc/rfc822/issues/3).
Code was tested with ruby-1.8.7-p334 [ i386 ] and ruby-1.9.2-p180 [ i386 ] under RVM.
The gems are hosted at Rubygems.org. Make sure you’re using the latest version of rubygems:
$ gem update --system
Then you can install the gem as follows:
$ gem install rfc822
Add to your Gemfile:
gem "rfc822"
and then type:
bundle install
The source code is available at github.com/saepia/rfc822. You can either clone the git repository or download a tarball or zip file. Once you have the source, you can unpack it and use from wherever you downloaded.
-
Fixed bug that caused to change encoding of string passed to the methods (thanks to Artur Trzop)
-
Fixed regression introduced in 0.1.3 that caused EMAIL_REGEXP_WHOLE to stop working properly.
- security
-
Updated regular expressions to use A and z instead of ^ and $ operators.
-
Updated license
-
Fixed description in the gem description
-
Added compatibility with Ruby 1.9
-
Added String#is_email?, String#contains_email? and String#scan_for_emails methods
-
Initial release
MIT