Exception in for next item

  • Thread starter daniel wijnands
  • Start date
D

daniel wijnands

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
 
D

daniel wijnands

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 ?
 
D

daniel wijnands

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,201
Messages
2,571,049
Members
47,655
Latest member
eizareri

Latest Threads

Top