asyncore - How to scan python smtpd server for text -
i receive email python. want exit mailserver , utilize content of email in script.
for example:
if "any_string" in data: print "success" << exit mailserver >> << other commands >> code:
import smtpd import asyncore class fakesmtpserver(smtpd.smtpserver): __version__ = 'test email server' def process_message(self, peer, mailfrom, rcpttos, data): print 'receiving message from:', peer print 'message addressed from:', mailfrom print 'message addressed :', rcpttos print 'message length :', len(data) print 'message :', info homecoming if __name__ == "__main__": smtp_server = fakesmtpserver(('0.0.0.0', 25), none) try: asyncore.loop() except keyboardinterrupt: smtp_server.close()
you can exit asyncore loop calling asyncore.close_all in process_message method :
def process_message(self, peer, mailfrom, rcpttos, data): # ... print 'message :', info asyncore.close_all() homecoming edit
if want have access text of message after exiting asyncore loop, store attribute of smtp server
#... class fakesmtpserver(smtpd.smtpserver): def process_message(self, peer, mailfrom, rcpttos, data): # ... self.data = info # ... if __name__ == "__main__": smtp_server = fakesmtpserver(('0.0.0.0', 25), none) try: asyncore.loop() except keyboardinterrupt: smtp_server.close() # smtp_server.data contains text of message python asyncore smtpd
No comments:
Post a Comment