Parent

Included Modules

Class/Module Index [+]

Quicksearch

Mail::Address

Public Class Methods

new(value = nil) click to toggle source

Mail::Address handles all email addresses in Mail. It takes an email address string and parses it, breaking it down into its component parts and allowing you to get the address, comments, display name, name, local part, domain part and fully formatted address.

Mail::Address requires a correctly formatted email address per RFC2822 or RFC822. It handles all obsolete versions including obsolete domain routing on the local part.

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.format       #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
a.address      #=> 'mikel@test.lindsaar.net'
a.display_name #=> 'Mikel Lindsaar'
a.local        #=> 'mikel'
a.domain       #=> 'test.lindsaar.net'
a.comments     #=> ['My email address']
a.to_s         #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
# File lib/mail/elements/address.rb, line 22
def initialize(value = nil)
  @output_type = :decode
  @tree = nil
  @raw_text = value
  case
  when value.nil?
    @parsed = false
    return
  else
    parse(value)
  end
end

Public Instance Methods

address() click to toggle source

Returns the address that is in the address itself. That is, the local@domain string, without any angle brackets or the like.

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.address #=> 'mikel@test.lindsaar.net'
# File lib/mail/elements/address.rb, line 67
def address
  parse unless @parsed
  domain ? "#{local}@#{domain}" : local
end
address=(value) click to toggle source

Provides a way to assign an address to an already made Mail::Address object.

a = Address.new
a.address = 'Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>'
a.address #=> 'mikel@test.lindsaar.net'
# File lib/mail/elements/address.rb, line 77
def address=(value)
  parse(value)
end
comments() click to toggle source

Returns an array of comments that are in the email, or an empty array if there are no comments

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.comments #=> ['My email address']
# File lib/mail/elements/address.rb, line 126
def comments
  parse unless @parsed
  if get_comments.empty?
    nil
  else
    get_comments.map { |c| c.squeeze(" ") }
  end
end
decoded() click to toggle source
# File lib/mail/elements/address.rb, line 167
def decoded
  @output_type = :decode
  format
end
display_name() click to toggle source

Returns the display name of the email address passed in.

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.display_name #=> 'Mikel Lindsaar'
# File lib/mail/elements/address.rb, line 85
def display_name
  parse unless @parsed
  @display_name ||= get_display_name
  Encodings.decode_encode(@display_name.to_s, @output_type) if @display_name
end
display_name=( str ) click to toggle source

Provides a way to assign a display name to an already made Mail::Address object.

a = Address.new
a.address = 'mikel@test.lindsaar.net'
a.display_name = 'Mikel Lindsaar'
a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net>'
# File lib/mail/elements/address.rb, line 97
def display_name=( str )
  @display_name = str
end
domain() click to toggle source

Returns the domain part (the right hand side of the @ sign in the email address) of the address

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.domain #=> 'test.lindsaar.net'
# File lib/mail/elements/address.rb, line 116
def domain
  parse unless @parsed
  strip_all_comments(get_domain) if get_domain
end
encoded() click to toggle source
# File lib/mail/elements/address.rb, line 162
def encoded
  @output_type = :encode
  format
end
format() click to toggle source

Returns a correctly formatted address for the email going out. If given an incorrectly formatted address as input, Mail::Address will do its best to format it correctly. This includes quoting display names as needed and putting the address in angle brackets etc.

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
# File lib/mail/elements/address.rb, line 48
def format
  parse unless @parsed
  case
  when tree.nil?
    ''
  when display_name
    [quote_phrase(display_name), "<#{address}>", format_comments].compact.join(" ")
  when address
    [address, format_comments].compact.join(" ")
  else
    tree.text_value
  end
end
inspect() click to toggle source

Shows the Address object basic details, including the Address

a = Address.new('Mikel (My email) <mikel@test.lindsaar.net>')
a.inspect #=> "#<Mail::Address:14184910 Address: |Mikel <mikel@test.lindsaar.net> (My email)| >"
# File lib/mail/elements/address.rb, line 157
def inspect
  parse unless @parsed
  "#<#{self.class}:#{self.object_id} Address: |#{to_s}| >"
end
local() click to toggle source

Returns the local part (the left hand side of the @ sign in the email address) of the address

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.local #=> 'mikel'
# File lib/mail/elements/address.rb, line 106
def local
  parse unless @parsed
  "#{obs_domain_list}#{get_local.strip}" if get_local
end
name() click to toggle source

Sometimes an address will not have a display name, but might have the name as a comment field after the address. This returns that name if it exists.

a = Address.new('mikel@test.lindsaar.net (Mikel Lindsaar)')
a.name #=> 'Mikel Lindsaar'
# File lib/mail/elements/address.rb, line 140
def name
  parse unless @parsed
  get_name
end
raw() click to toggle source

Returns the raw imput of the passed in string, this is before it is passed by the parser.

# File lib/mail/elements/address.rb, line 37
def raw
  @raw_text
end
to_s() click to toggle source

Returns the format of the address, or returns nothing

a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
# File lib/mail/elements/address.rb, line 149
def to_s
  parse unless @parsed
  format
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.