Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Exception in for next item
daniel wijnands
1/5/2006 9:01:00 PM
Hello
I retrieve a number of message 1 to n
And try to send these by stmp that is no problem with te following code
:
messages = Spool.find_created_messages
Net::SMTP.start('sigma.itxl.nl',25,'itxl.nl') do | smtp |
for message in messages
begin
smtp.send_message message.mime_content, message.email_from
,message.email_to
message.destroy
rescue Net::SMTPSyntaxError
message.state = 'ERROR'
message.save
rescue Exception => exc
message.state = 'ERROR'
message.save
STDERR.puts "General spool error #{exc.class} #{exc.message}"
end
end
end
I would like to handel smtp errors gracefully, log the message en
continue with the next message
in the loop.
For example when the email adres has a syntac error danielitxl.nl ( no
@)
The next message should be sended, so the system doesn't get halted
Any ideas ?
Thanks in advantage
--
Posted via
http://www.ruby-...
.
2 Answers
daniel wijnands
1/6/2006 7:48:00 AM
0
I have pinpointed the problem what happens is this :
daniel-wijnands-powerbook58:~/Desktop/mailing danielwijnands$ ruby
script/runner 'Spool.spool'
General spool error Net::SMTPServerBusy 450 <pietitxl.nl>: User unknown
in local recipient table
General spool error Net::SMTPSyntaxError 503 Error: nested MAIL command
General spool error Net::SMTPSyntaxError 503 Error: nested MAIL command
The problem is that i'm sending multiple messages.
When te exception occurs ( Net::SMTPServerBusy 450 ) the server still
has the message open.
When i send another message it says Nested Mail command.
Is it possible to reset the connnection or the previous command ?
--
Posted via
http://www.ruby-...
.
daniel wijnands
1/6/2006 7:54:00 AM
0
Okay i have a solution. but i think it could be formed nicer :
Net::SMTP.start('mailserver',25,'domain') do | smtp |
for message in messages
begin
smtp.send_message message.mime_content, message.email_from
,message.email_to
message.destroy
rescue Exception => exc
message.state = 'ERROR'
message.save
smtp.finish
smtp = smtp.start('domain')
STDERR.puts "General spool error #{exc.class} #{exc.message}"
next
end
end
end
end
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Exception in for next item
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password