From: Ruby Newbee Date: 2010-01-01T15:26:38+09:00 Subject: Re: send emails On Fri, Jan 1, 2010 at 2:16 PM, Phillip Gawlowski wrote: > On 01.01.2010 07:06, Ruby Newbee wrote: >> >> On Fri, Jan 1, 2010 at 11:43 AM, Derek Smith >>  wrote: >>> >>> Ruby Newbee wrote: >>>> >>>> Hello, >>>> >>>> I need a module for sending emails. >>>> Could you show me where I can find it and what's the syntax? >>>> Thanks. >>> >>> Have fun! >>> >>> >>> require 'net/smtp' >>>  Net::SMTP.start('smtp.example.com', 25) do |smtp| >>>    smtp.open_message_stream('from_addr', [to_addr]) do |f| >>>      f.puts 'From: shabbir@g4ef.com' >>>      f.puts 'To: pradeep@g4ef.com' >>>      f.puts 'Subject: test message' >>>      f.puts 'This is a test message.' >>>    end >>>  end >>> >> >> Thanks, that works. >> >> But from syntax point to see, what's Net::SMTP.start('smtp.example.com', >> 25)? >> why it can accept a block as argument? > > Because it the #start method was written that way. ;) > The reason, I imagine, is to provide some failure resistance: If a code gets > exited, the environment gets "reset" (DB connections get closed, files > written to disk, etc). > Thanks Phillip. Can you kindly tell me how to write that a method? I know something like: class Myclass def myfunc a,b,c do_something_with a,b,c end end x= Myclass.new x.myfunc(1,2,3) but I dont know how to write a method which accepts a block (like the above smtp one). THanks. Jenn.