This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Each existing unread and subsequent new emails after the script is started are | |
passed as Mail objects to "process_email" function.Function header is provided | |
but processing implementation is left to the user. Error logs are currently sent | |
to a rotating log file (in the same directory as the script) and to STDOUT. | |
Instead of polling or checking the server for new emails every now and then, | |
IMAP IDLE check is utilized. Ensure that the IMAP server supports IDLE command | |
and allows at least 5 minutes of idling*** and uses the default ports for this | |
script to work. Tested to work with Gmail and default installations of MS | |
Exchange Server. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import imaplib2, time | |
from threading import * | |
# This is the threading object that does all the waiting on | |
# the event | |
class Idler(object): | |
def __init__(self, conn): | |
self.thread = Thread(target=self.idle) | |
self.M = conn | |
self.event = Event() |