Forum: Ruby on Rails Validating email

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-07 10:16
Hi
  I have a mailid like test@123.com@   As part of email validation

 I have to check it user@123.com So I did

"test@123.com@@".split('@')  So I get ['test','123.com']   But if it
were test@123.com  the expected validation is correct But the lase two @
signs are not recognized by split So how can check that after 123.com
still there is @ sign and declare my validation as failed?

Sijo
34a7615f38496a5dafbb3e6b721c435e?d=identicon&s=25 Mohit Sindhwani (Guest)
on 2008-11-07 10:31
(Received via mailing list)
Sijo Kg wrote:
> Sijo
>
I can't explain why it doesn't recognize but you could add something to
the end of the address and split.

irb(main):014:0> a = 'test@123.com@@'
=> "test@123.com@@"
irb(main):015:0> a.split('@')
=> ["test", "123.com"]
irb(main):016:0> a = a + 'trash'
=> "test@123.com@@trash"
irb(main):017:0> a.split('@')
=> ["test", "123.com", "", "trash"]
irb(main):018:0>

Hope this helps.

Cheers,
Mohit.
11/7/2008 | 5:29 PM.
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-07 10:39
Hi
   This is not the required solution Suppose the user enters
test@123.com@@ or test@123.com@ what happens?  Since we  cant insists
that there should be value after @  or @@

Thanks
Sijo
Fb1a6916e06f221b5b53a6665f9858eb?d=identicon&s=25 Mikel Lindsaar (Guest)
on 2008-11-07 11:02
(Received via mailing list)
On Fri, Nov 7, 2008 at 8:39 PM, Sijo Kg
<rails-mailing-list@andreas-s.net>
 wrote:

>
> Hi
>   This is not the required solution Suppose the user enters
> test@123.com@@ or test@123.com@ what happens?  Since we  cant insists
> that there should be value after @  or @@


Use tmail to validate your email :)
It will raise an exception on basically anything except a correct
address.

And I would recommend not using an '@' symbol to symbolize anything in
an
email address. It is the key component that separates the local from the
domain part of the email address and you will always run into problems.

You can see how here:

http://www.lindsaar.net/2008/4/14/tip-4-detecting-...

>> require 'tmail'
=> true
>> TMail::Address.parse('test@123.com@@')
TMail::SyntaxError: parse error on token "@"
from parser.y:379:in `on_error'
from (irb):2:in `_racc_yyparse_c'
from parser.y:375:in `scan'
from parser.y:375:in `parse_in'
from racc/parser.rb:152:in `_racc_yyparse_c'
from racc/parser.rb:152:in `__send__'
from racc/parser.rb:152:in `yyparse'
from parser.y:366:in `parse'
from parser.y:344:in `parse'
from
/Library/Ruby/Gems/1.8/gems/tmail-1.2.3.1/lib/tmail/address.rb:84:in
`parse'
from (irb):2
>> TMail::Address.parse('test@123.com@')
TMail::SyntaxError: parse error on token "@"
from parser.y:379:in `on_error'
from (irb):3:in `_racc_yyparse_c'
from parser.y:375:in `scan'
from parser.y:375:in `parse_in'
from racc/parser.rb:152:in `_racc_yyparse_c'
from racc/parser.rb:152:in `__send__'
from racc/parser.rb:152:in `yyparse'
from parser.y:366:in `parse'
from parser.y:344:in `parse'
from
/Library/Ruby/Gems/1.8/gems/tmail-1.2.3.1/lib/tmail/address.rb:84:in
`parse'
from (irb):3
>> TMail::Address.parse('test@123.com')
=> #<TMail::Address test@123.com>


--
http://lindsaar.net/
Rails, RSpec and Life blog....
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-07 11:16
Hi
    Thanks for the reply..But when i tried from script/console reslut
was like

TMail::Address.parse('test@123.com@')
=> #<TMail::Address test@123.com@>
>> TMail::Address.parse('test@123.com@@')
=> #<TMail::Address test@123.com@>

             Why this happens?

Sijo
Fb1a6916e06f221b5b53a6665f9858eb?d=identicon&s=25 Mikel Lindsaar (Guest)
on 2008-11-14 05:03
(Received via mailing list)
On Fri, Nov 7, 2008 at 9:16 PM, Sijo Kg
<rails-mailing-list@andreas-s.net>wrote:

>    Thanks for the reply..But when i tried from script/console reslut
> was like
>
> TMail::Address.parse('test@123.com@')
> => #<TMail::Address test@123.com@>
> >> TMail::Address.parse('test@123.com@@')
> => #<TMail::Address test@123.com@>
>

What version of TMail is that?

>> TMail::VERSION::STRING
=> "1.2.3"

Mikel
B14575f0ca69f10938fdd67e7156e0e1?d=identicon&s=25 Craig Demyanovich (Guest)
on 2008-11-14 05:15
(Received via mailing list)
In my current project, I'm using the regexp from
http://www.regular-expressions.info/email.html with validates_format_of
to
validate email addresses.

Regards,
Craig
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-14 05:29
Hi

When in console typed
TMail::VERSION::STRING
 I got error

NameError: uninitialized constant TMail

     So wont Tmail be installed as part of Rails?

Sijo
B09a3f6cdc4797532647d2d264b5df49?d=identicon&s=25 Jodi Showers (jshow)
on 2008-11-14 14:51
(Received via mailing list)
Hey yo -

On 13-Nov-08, at 11:14 PM, Craig Demyanovich wrote:

> In my current project, I'm using the regexp from 
http://www.regular-expressions.info/email.html
>  with validates_format_of to validate email addresses.
>
> Regards,
> Craig


Checked out this baby?

http://ex-parrot.com/~pdw/Mail-RFC822-Address.html

(I'm using something similar to Craig's - wonder if the above would
crack open a bug in ruby's regexp?

J
D69d23d8e811e8ab2a8593380d6ede63?d=identicon&s=25 Jeff Emminger (jemminger)
on 2008-11-14 15:22
(Received via mailing list)
Another contender... I use this one:

http://tfletcher.com/lib/rfc822.rb

usage:  validates_format_of :email, :with => RFC822::EmailAddress
This topic is locked and can not be replied to.