[Zope] error with simple python script loop

Jonathan dev101 at magma.ca
Fri Nov 24 07:58:33 EST 2006


----- Original Message ----- 
From: "Christian Steinhauer" <steinhauer at know-it.net>
To: <zope at zope.org>
Sent: Friday, November 24, 2006 7:12 AM
Subject: [Zope] error with simple python script loop


>I have an problem with this little script. The script is in the zope
> file structure and it is an -Script (Python)-
>
> The script should send 2 emails over the mailhost, but it sends 4
> emails. I have test this with maildrophost product too, same problem. I
> have test it on Zope 2.10.0 and Zope 2.64. The problem is the same -
> everytime.
>
> This script produce the error:
> #### start ####
> for i in range(2):
>  subj = str(i) + ' range python'
>  context.MailHost.send('range test with python', "rec at mail.com",
> "sender at mail.com", subj)
> #### end ####
>
> This script produce no error:
> #### start ####
> for i in range(2):
>  subj = str(i) + ' range python'
>  context.MailHost.send('range test with python', "rec at mail.com",
> "sender at mail.com", subj)
> return 'eof'
> #### end ####
>
> So if i make a return (not in the loop) the script works fine.
> Can anybody tell me why? It feels like that there are any spaces in the
> script and zope/python did not work correctly when there is no other
> procedure after the for loop. I dont understand why he calls the loop
> two times and produce 4 emails. There is no transactional error in the
> error_log.
>

I just cut and pasted your code into a python script on my Zope installation 
(2.9.2) and it worked as expected (ie. 2 emails sent). So something is 
pooched in your installation.

A quick way to check to see if your script is looping more than you expect 
is to do something like:

loopCheck = []
for i in range(2):
  subj = str(i) + ' range python'
  context.MailHost.send('range test with python', "rec at mail.com", 
"sender at mail.com", subj)
  loopCheck.append(subj)
return loopCheck

If you are getting only 2 iterations of the loop (as it should be), then 
something is wrong with your MailHost (if this is the case try deleting it 
and re-adding it).  Another test: place a local copy of MailHost in the same 
folder as your script and see what happens.

hth

Jonathan





More information about the Zope mailing list