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