[Twisted-Python]The problem afer reactor stoped....
    Alessandro 
    aleuser at inwind.it
       
    Tue May  6 01:09:03 MDT 2008
    
    
  
李祥曦 wrote:
> Hi,all
>   
Hi
>    I want to write a program that can send some e-mails automaticlly,i
> use the code like this:
>   
reactor.stop() and reactor.run() have to be called only one time!
Try the following:
def sendmail(authenticationUsername, authenticationSecret,fromAddress,
...
def sendComplete(result):
print "Message sent."
# reactor.stop() comment this line out!
class EmailUtil:
def __init__(self,popserver,smptserver,username,password):
...
def goSend(self,fromaddr, toaddr, subject, body, filenames):
...
return result.addCallbacks(sendComplete,handleError) # get back the result
# reactor.run() comment this line out
if __name__=='__main__':
twisted.internet.defer import DeferredList
f=EmailUtil('','smtp.xxx.com','xxxx','1234')
filenames=['test2.docx']
dd1 = 
f.goSend('xxxx at xxx.com','xxx at hotmail.com','testSend','aaaaaaaaaa',filenames)
dd2 = 
f.goSend('xxxx at xxx.com','xxx at hotmail.com','testSend','aaaaaaaaaa',filenames)
dd3 = 
f.goSend('xxxx at xxx.com','xxx at hotmail.com','testSend','aaaaaaaaaa',filenames)
d4ll =DeferredList([dd1,dd2,dd3]) #errback ?
def stop(*arg): reactor.stop()
d4ll.addCallback(stop)
reactor.run()
Note: not tested
You can test EmailUtil alone without twisted, removing his internal 
addCallbacks (you can attach the callback in the main)
Alessandro
    
    
More information about the Twisted-Python
mailing list