class Mail::Message

def initialize(*args, &block)


mail.to_s #=> "From: mikel@test.lindsaar.net\r\nTo: you@...

mail.body = 'This is a body'
mail.subject 'This is a test email'
mail[:to] = 'you@test.lindsaar.net'
mail['from'] = 'mikel@test.lindsaar.net'
mail = Mail.new

Examples:

* Message#[:field_name]=(value)
* Message#['field_name']=(value)
* Message#field_name(value)
* Message#field_name=(value)

You can assign values to a mail object via four approaches:

===Making an email via assignment

mail.to #=> 'mikel@test.lindsaar.net'
mail.subject #=> 'Hello'
mail.body.to_s #=> 'Hi there!'
mail = Mail.read('path/to/file.eml')

===Making an email from a file

mail.to #=> 'mikel@test.lindsaar.net'
mail.subject #=> 'Hello'
mail.body.to_s #=> 'Hi there!'
mail = Mail.new("To: mikel@test.lindsaar.net\r\nSubject: Hello\r\n\r\nHi there!")

===Making an email via passing a string

end
# …
from 'mikel@test.lindsaar.net'
mail = Mail.new do

be evaluated in the scope of the new message instance:
If may also pass a block with no arguments, in which case it will

mail.to_s #=> "From: mikel@test.lindsaar.net\r\nTo: you@...

end
m.body File.read('body.txt')
m.subject 'This is a test email'
m.to 'you@test.lindsaar.net'
m.from 'mikel@test.lindsaar.net'
mail = Mail.new do |m|

===Making an email via a block

You can make an new mail object via a block, passing a string, file or direct assignment.

==Making an email
def initialize(*args, &block)
  @body = nil
  @body_raw = nil
  @separate_parts = false
  @text_part = nil
  @html_part = nil
  @errors = nil
  @header = nil
  @charset = self.class.default_charset
  @defaulted_charset = true
  @smtp_envelope_from = nil
  @smtp_envelope_to = nil
  @perform_deliveries = true
  @raise_delivery_errors = true
  @delivery_handler = nil
  @delivery_method = Mail.delivery_method.dup
  @transport_encoding = Mail::Encodings.get_encoding('7bit')
  @mark_for_delete = false
  if args.flatten.first.respond_to?(:each_pair)
    init_with_hash(args.flatten.first)
  else
    init_with_string(args.flatten[0].to_s)
  end
  # Support both builder styles:
  #
  #   Mail.new do
  #     to 'recipient@example.com'
  #   end
  #
  # and
  #
  #   Mail.new do |m|
  #     m.to 'recipient@example.com'
  #   end
  if block_given?
    if block.arity.zero?
      instance_eval(&block)
    else
      yield self
    end
  end
  self
end