Class | TMail::Address |
In: |
lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb
|
Parent: | Object |
Provides a complete handling library for email addresses. Can parse a string of an address directly or take in preformatted addresses themselves. Allows you to add and remove phrases from the front of the address and provides a compare function for email addresses.
Just pass the email address in as a string to Address.parse:
email = TMail::Address.parse('Mikel Lindsaar <mikel@lindsaar.net>) #=> #<TMail::Address mikel@lindsaar.net> email.address #=> "mikel@lindsaar.net" email.local #=> "mikel" email.domain #=> "lindsaar.net" email.name # Aliased as phrase as well #=> "Mikel Lindsaar"
If you want to check the syntactical validity of an email address, just pass it to Address.parse and catch any SyntaxError:
begin TMail::Mail.parse("mikel 2@@@@@ me .com") rescue TMail::SyntaxError puts("Invalid Email Address Detected") else puts("Address is valid") end #=> "Invalid Email Address Detected"
Sometimes you need to parse an address, TMail can do it for you and provide you with a fairly robust method of detecting a valid address.
Takes in a string, returns a TMail::Address object.
Raises a TMail::SyntaxError on invalid email format
Provides == function to the email. Only checks the actual address and ignores the name/phrase component
For Example
addr1 = TMail::Address.parse("My Address <mikel@lindsaar.net>") #=> "#<TMail::Address mikel@lindsaar.net>" addr2 = TMail::Address.parse("Another <mikel@lindsaar.net>") #=> "#<TMail::Address mikel@lindsaar.net>" addr1 == addr2 #=> true
Duplicates a TMail::Address object returning the duplicate
addr1 = TMail::Address.parse("mikel@lindsaar.net") addr2 = addr1.dup addr1.id == addr2.id #=> false
Setter method for the name or phrase of the email
For Example:
email = TMail::Address.parse("mikel@lindsaar.net") email.name #=> nil email.name = "Mikel Lindsaar" email.to_s #=> "Mikel Lindsaar <mikel@me.com>"
This is still here from RFC 822, and is now obsolete per RFC2822 Section 4.
"When interpreting addresses, the route portion SHOULD be ignored."
It is still here, so you can access it.
Routes return the route portion at the front of the email address, if any.
For Example:
email = TMail::Address.parse( "<@sa,@another:Mikel@me.com>") => #<TMail::Address Mikel@me.com> email.to_s => "<@sa,@another:Mikel@me.com>" email.routes => ["sa", "another"]