From: "Peña, Botp" Date: 2008-08-09T13:36:03+09:00 Subject: Re: Net::SMTP and Unknown User From: Daniel Berger [mailto:djberg96@gmail.com] #DB: require 'net/smtp' #DB: mhost = 'mailgate.work.com' #DB: from = 'daniel.berger@work.com' #DB: # First email is valid, second one is not #DB: to = ['daniel.berger@work.com', 'foo.bar@work.com'] #DB: #DB: # Raises a Net::SMTPFatalError NO, it should not (unless you reached the limit of the server's max recipient setting). what are the details of the error? #DB: Net::SMTP.start(mhost, 25){ |smtp| #DB: smtp.send_message("hello", from, to) #DB: } below is the actual code i used, adapted fr your code. i just modified the params to work in my case and put some debugging so i know where in the smtp session a certain error occurred just in case. i also show an actual run. result is that i got one email for the test and another bounced email for the dummy foo.bar address. C:\family\ruby\mail>cat daniel.rb require 'rubygems' require 'net/smtp' smtp_server = 'bugomail.delmonte-phil.com' smtp_port = 25 from = 'botp@bugo.dmpi' # First email is valid, second one is not to = ['botp@bugo.dmpi', 'foo.bar@bugo.dmpi'] # Raises a Net::SMTPFatalError smtp = Net::SMTP.new(smtp_server, smtp_port) smtp.set_debug_output $stderr # use for debugging; outputs mail sessions smtp.start { |smtp| smtp.send_message("this is a test", from, to) } C:\family\ruby\mail>ruby daniel.rb Connection opened: bugomail.delmonte-phil.com:25 -> "220 BUGOMAIL.delmonte-phil.com Microsoft ESMTP MAIL Service, Version: 6.0.37 90.3959 ready at Sat, 9 Aug 2008 12:24:50 +0800 \r\n" <- "EHLO localhost.localdomain\r\n" -> "250-BUGOMAIL.delmonte-phil.com Hello [10.2.10.123]\r\n" -> "250-TURN\r\n" -> "250-SIZE\r\n" -> "250-ETRN\r\n" -> "250-PIPELINING\r\n" -> "250-DSN\r\n" -> "250-ENHANCEDSTATUSCODES\r\n" -> "250-8bitmime\r\n" -> "250-BINARYMIME\r\n" -> "250-CHUNKING\r\n" -> "250-VRFY\r\n" -> "250-X-EXPS GSSAPI NTLM LOGIN\r\n" -> "250-X-EXPS=LOGIN\r\n" -> "250-AUTH GSSAPI NTLM LOGIN\r\n" -> "250-AUTH=LOGIN\r\n" -> "250-X-LINK2STATE\r\n" -> "250-XEXCH50\r\n" -> "250 OK\r\n" <- "MAIL FROM:\r\n" -> "250 2.1.0 botp@bugo.dmpi....Sender OK\r\n" <- "RCPT TO:\r\n" -> "250 2.1.5 botp@bugo.dmpi \r\n" <- "RCPT TO:\r\n" -> "250 2.1.5 foo.bar@bugo.dmpi \r\n" <- "DATA\r\n" -> "354 Start mail input; end with .\r\n" writing message from String wrote 19 bytes -> "250 2.6.0 Queued ma il for delivery\r\n" <- "QUIT\r\n" -> "221 2.0.0 BUGOMAIL.delmonte-phil.com Service closing transmission channel\r\ n" C:\family\ruby\mail> #DB: If this is the wrong approach, I'm all ears. that approach is fine for small number of recipients. generally, mail servers limit the number of recipients of a single mail. So, for a big number (we do not care how many), I. use a loop Net::SMTP.start(mhost, 25){ |smtp| to.each do |recipient| smtp.send_message("hello", from, recipient) end end II. or send to a mail_group address to the mail server configured w the aliases, ie mail_group => user1@test.com, user2@test2.com, .... III. or send to a mail_group address to a mail server capable of routing it to a mailing list server (eg majordomo). this is the ideal setup for big lists. kind regards -botp