Validate email address?

Anyone have a code snippet that tells whether an email address is
"valid" but not necessarily whether it is a working address because that
much I can sort out through my mail server through any bounces.

I have a database of addresses where the person entering the data has a
bad, bad, bad, BAD habit of not validating them before entering them and
so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
the like. It's not my company or else she'd be going over all the
entries by hand.

Thanks in advance

email = "email@host.tld"
email2 = "email@h@ost.tld"

email =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
#=> true/0
email2 =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
#=> nil/false

I hope that helped.
(That strange looking thing is called a regular expression)

···

On [Fri, 01.02.2008 01:14], Eric H. wrote:

Anyone have a code snippet that tells whether an email address is
"valid" but not necessarily whether it is a working address because that
much I can sort out through my mail server through any bounces.

I have a database of addresses where the person entering the data has a
bad, bad, bad, BAD habit of not validating them before entering them and
so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
the like. It's not my company or else she'd be going over all the
entries by hand.

Thanks in advance

--
Dominik Honnef

Anyone have a code snippet that tells whether an email address is
"valid" but not necessarily whether it is a working address because that
much I can sort out through my mail server through any bounces.

I have a database of addresses where the person entering the data has a
bad, bad, bad, BAD habit of not validating them before entering them and
so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
the like. It's not my company or else she'd be going over all the
entries by hand.

See How to Find or Validate an Email Address

Thanks in advance

--Greg

···

On Fri, Feb 01, 2008 at 01:14:56AM +0900, Eric H. wrote:

module ActiveRecord
  module Validations
    module ClassMethods
      # Validates whether the value of the specified attribute is a
valid email address

···

#
      # class User < ActiveRecord::Base
      # validates_email_format_of :email, :on => :create
      # end
      #
      # Configuration options:
      # * <tt>message</tt> - A custom error message (default is: "
does not appear to be a valid e-mail address")
      # * <tt>on</tt> Specifies when this validation is active
(default is :save, other options :create, :update)
      # * <tt>if</tt> - Specifies a method, proc or string to call to
determine if the validation should
      # occur (e.g. :if => :allow_validation, or :if => Proc.new {

user> user.signup_step > 2 }). The

      # method, proc or string should return or evaluate to a true
or false value.
      def validates_email_format_of(*attr_names)
        configuration = { :message => ' does not appear to be a valid
e-mail address',
                          :on => :save,
                          :with =>
/^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/i
}

        configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)

        validates_each(attr_names, configuration) do |record, attr_name, value|
          record.errors.add(attr_name, configuration[:message]) unless
value.to_s =~ configuration[:with]
        end
      end
    end
  end
end

On Feb 1, 2008 12:14 AM, Eric H. <REMOVE-CAPSburnFORout@setmdaiiol.com> wrote:

Anyone have a code snippet that tells whether an email address is
"valid" but not necessarily whether it is a working address because that
much I can sort out through my mail server through any bounces.

I have a database of addresses where the person entering the data has a
bad, bad, bad, BAD habit of not validating them before entering them and
so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
the like. It's not my company or else she'd be going over all the
entries by hand.

Thanks in advance

One of my email addresses is:
  !@phrogz.net
This is completely valid, and not even very crazy. The proliferation
of half-assed regular expressions like the above prevents me from
using that address on lots of web sites.

You cannot EXACTLY validate the syntax of an email address using only
regular expressions. You can get close, but you need a much better
regexp than the above.

Here are some more syntactically valid email addresses:
  "Me Here"@phrogz.net
  phrogz@[69.46.18.236]
  phrogz@(go)[69.46.18.236](me(yeah))

···

On Jan 31, 10:12 am, Dominik Honnef <domini...@gmx.net> wrote:

On [Fri, 01.02.2008 01:14], Eric H. wrote:

> Anyone have a code snippet that tells whether an email address is
> "valid" but not necessarily whether it is a working address because that
> much I can sort out through my mail server through any bounces.

> I have a database of addresses where the person entering the data has a
> bad, bad, bad, BAD habit of not validating them before entering them and
> so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
> the like. It's not my company or else she'd be going over all the
> entries by hand.

> Thanks in advance

email = "em...@host.tld"
email2 = "email@h...@ost.tld"

email =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
#=> true/0
email2 =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
#=> nil/false

Dominik Honnef wrote:

I hope that helped.
(That strange looking thing is called a regular expression)

Looks fine. Go figure that I've been programming for decades and to this
day I still haven't managed to learn regex but I only ever need it once
every 5 years or so.

one approach i've used:

   address.scan( %r/[^@]+/ ).size == 2

:wink:

a @ http://codeforpeople.com/

···

On Jan 31, 2008, at 11:55 AM, Phrogz wrote:

Here are some more syntactically valid email addresses:
"Me Here"@phrogz.net
phrogz@[69.46.18.236]
phrogz@(go)[69.46.18.236](me(yeah))

--
share your knowledge. it's a way to achieve immortality.
h.h. the 14th dalai lama

And as nearly no website nor many email clients (i even believe, that some email servers will fail on this adresses)
can handle this kind of email addresses, it shouldn't be a huge problem to use this regex.
Of course it isn't the best solution, but it probably covers about 99% of all valid email adresses.
And i prefer covering 99% of valid adresses over allowing a lot more invalid adresses.

···

On [Fri, 01.02.2008 03:55], Phrogz wrote:

On Jan 31, 10:12 am, Dominik Honnef <domini...@gmx.net> wrote:
> On [Fri, 01.02.2008 01:14], Eric H. wrote:
>
> > Anyone have a code snippet that tells whether an email address is
> > "valid" but not necessarily whether it is a working address because that
> > much I can sort out through my mail server through any bounces.
>
> > I have a database of addresses where the person entering the data has a
> > bad, bad, bad, BAD habit of not validating them before entering them and
> > so I get things like "***DO NOT SHARE DATA***" and "lmnopaol.com" and
> > the like. It's not my company or else she'd be going over all the
> > entries by hand.
>
> > Thanks in advance
>
> email = "em...@host.tld"
> email2 = "email@h...@ost.tld"
>
> email =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
> #=> true/0
> email2 =~ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
> #=> nil/false

One of my email addresses is:
  !@phrogz.net
This is completely valid, and not even very crazy. The proliferation
of half-assed regular expressions like the above prevents me from
using that address on lots of web sites.

You cannot EXACTLY validate the syntax of an email address using only
regular expressions. You can get close, but you need a much better
regexp than the above.

Here are some more syntactically valid email addresses:
  "Me Here"@phrogz.net
  phrogz@[69.46.18.236]
  phrogz@(go)[69.46.18.236](me(yeah))

--
Dominik Honnef