Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)