def getMessage(self, uid): if(not self.server.loggedIn): self.server.login() self.server.imap_server.select(self.mailbox) status, data = self.server.imap_server.uid('fetch',uid, 'RFC822') messagePlainText = '' messageHTML = '' for response_part in data: if isinstance(response_part, tuple): msg = email.message_from_string(response_part[1]) for part in msg.walk(): if str(part.get_content_type()) == 'text/plain': messagePlainText = messagePlainText + str(part.get_payload()) if str(part.get_content_type()) == 'text/html': messageHTML = messageHTML + str(part.get_payload()) #create new message object message = gmail_message.gmail_message() if(messageHTML != '' ): message.Body = messageHTML else: message.Body = messagePlainText if('Subject' in msg): message.Subject = msg['Subject'] message.From = msg['From'] message.uid = uid message.mailbox = self.mailbox message.date = msg['Date'] return message
def process(self,mailbox): self.mailbox = mailbox self.messages = list() if(not self.server.loggedIn): self.server.login() result, message = self.server.imap_server.select(mailbox,readonly=1) if result != 'OK': raise Exception, message typ, data = self.server.imap_server.search(None, '(UNDELETED)') fetch_list = string.split(data[0])[-10:]# limit to N most recent messages in mailbox, this is where pagination should be implemented fetch_list = ','.join(fetch_list) if(fetch_list): f = self.server.imap_server.fetch(fetch_list, '(UID FLAGS BODY.PEEK[HEADER.FIELDS (FROM SUBJECT DATE)])') for fm in f[1]: if(len(fm)>1): metadata = self.parseMetadata(fm[0]) #metadata is contained headers = self.parseHeaders(fm[1]) message = gmail_message.gmail_message() message.id = metadata['id'] message.uid = metadata['uid'] message.flags = metadata['flags'] message.mailbox = mailbox #UID depends on mailbox location so, #we need to know which owns the message message.date = headers['Date'] message.From = headers['From'] if( 'Subject' in headers ): message.Subject = headers['Subject'] self.messages.append(message)
def getMessage(self, uid): if (not self.server.loggedIn): self.server.login() self.server.imap_server.select(self.mailbox) status, data = self.server.imap_server.uid('fetch', uid, 'RFC822') messagePlainText = '' messageHTML = '' for response_part in data: if isinstance(response_part, tuple): msg = email.message_from_string(response_part[1]) for part in msg.walk(): if str(part.get_content_type()) == 'text/plain': messagePlainText = messagePlainText + str( part.get_payload()) if str(part.get_content_type()) == 'text/html': messageHTML = messageHTML + str(part.get_payload()) #create new message object message = gmail_message.gmail_message() if (messageHTML != ''): message.Body = messageHTML else: message.Body = messagePlainText if ('Subject' in msg): message.Subject = msg['Subject'] message.From = msg['From'] message.uid = uid message.mailbox = self.mailbox message.date = msg['Date'] return message
def process(self, mailbox): self.mailbox = mailbox self.messages = list() if (not self.server.loggedIn): self.server.login() result, message = self.server.imap_server.select(mailbox, readonly=1) if result != 'OK': raise Exception, message typ, data = self.server.imap_server.search(None, '(UNDELETED)') fetch_list = string.split( data[0] )[-10:] # limit to N most recent messages in mailbox, this is where pagination should be implemented fetch_list = ','.join(fetch_list) if (fetch_list): f = self.server.imap_server.fetch( fetch_list, '(UID FLAGS BODY.PEEK[HEADER.FIELDS (FROM SUBJECT DATE)])') for fm in f[1]: if (len(fm) > 1): metadata = self.parseMetadata( fm[0]) #metadata is contained headers = self.parseHeaders(fm[1]) message = gmail_message.gmail_message() message.id = metadata['id'] message.uid = metadata['uid'] message.flags = metadata['flags'] message.mailbox = mailbox #UID depends on mailbox location so, #we need to know which owns the message message.date = headers['Date'] message.From = headers['From'] if ('Subject' in headers): message.Subject = headers['Subject'] self.messages.append(message)
def process(self): self.messages = list() fetch_list = string.split(self.messages_data[0])[-10:] fetch_list = ','.join(fetch_list) if(fetch_list): f = self.server.imap_server.fetch(fetch_list, '(UID FLAGS BODY.PEEK[HEADER.FIELDS (FROM SUBJECT DATE)])') for fm in f[1]: if(len(fm) > 1): metadata = self.parseMetadata(fm[0]) headers = self.parseHeaders(fm[1]) message = gmail_message.gmail_message() message.id = metadata['id'] message.uid = metadata['uid'] message.flags = metadata['flags'] message.date = headers['Date'] message.From = headers['From'] if('Subject' in headers): message.Subject = headers['Subject'] self.messages.append(message)