예제 #1
0
 def append():
     message = file(infile)
     return self.client.sendCommand(
         imap4.Command(
             'APPEND', 'PARTIAL/SUBTHING (\\SEEN) "Right now" '
             '{%d}' % os.path.getsize(infile), (),
             self.client._IMAP4Client__cbContinueAppend, message))
예제 #2
0
    def _beforeDisconnect(self):
        """
        Overides base class to send a IMAP 'LOGOUT' command
        before disconnecting from the IMAP server
        """

        if __debug__:
            trace("_beforeDisconnect")

        if self.factory is None or self.proto is None or \
           self.factory.connectionLost or self.factory.timedOut or \
           self.proto.queued is None:
            return defer.succeed(True)

        #XXX Commenting out the code that sends a close IMAP command
        # when an error arises and the self.vars has yet to be reset.
        #if self.vars and self.vars.folderItem:
        #    # If the vars instance is not None and the
        #    # folderItem is not None then a cancel,
        #    # shutdown, or error occurred in which case
        #    # we want to close the open folder
        #    d = self.proto.close()
        #    d.addBoth(lambda x: self.proto.sendCommand(imap4.Command('LOGOUT', \
        #                        wantResponse=('BYE',))))
        #else:
        return self.proto.sendCommand(
            imap4.Command('LOGOUT', wantResponse=('BYE', )))
예제 #3
0
파일: MailClient.py 프로젝트: calston/tums
    def fetchSpecific(self, messages, uid=0, headerType=None, headerNumber=None, headerArgs=None, peek=None, offset=None, length=None):

        fmt = '%s (FLAGS BODY%s[%s%s%s]%s)'

        if headerNumber is None:
            number = ''
        elif isinstance(headerNumber, types.IntType):
            number = str(headerNumber)
        else:
            number = '.'.join(headerNumber)
        if headerType is None:
            header = ''
        elif number:
            header = '.' + headerType
        else:
            header = headerType
        if header:
            if headerArgs is not None:
                payload = ' (%s)' % ' '.join(headerArgs)
            else:
                payload = ' ()'
        else:
            payload = ''
        if offset is None:
            extra = ''
        else:
            extra = '<%d.%d>' % (offset, length)
        fetch = uid and 'UID FETCH' or 'FETCH'
        cmd = fmt % (messages, peek and '.PEEK' or '', number, header, payload, extra)
        d = self.sendCommand(imap4.Command(fetch, cmd, wantResponse=('FETCH',)))
        d.addCallback(self.__cbFetchSpecific)
        return d
예제 #4
0
    def _beforeDisconnect(self):
        """Overides base class to send a IMAP 'LOGOUT' command
           before disconnecting from the IMAP server"""

        if __debug__:
            self.printCurrentView("_beforeDisconnect")

        if self.factory.connectionLost or self.factory.timedOut:
            return defer.succeed(True)

        d = self.proto.sendCommand(
            imap4.Command('LOGOUT', wantResponse=('BYE', )))

        return d
예제 #5
0
파일: client.py 프로젝트: phlax/txCyrus
 def lm(self, pattern='*'):
     if not pattern:
         pattern = "*"
     if pattern == '%':
         reference = ''
         wildcard = '%'
     else:
         reference = '*'
         wildcard = pattern.encode('imap4-utf-7')
     cmd = 'LIST'
     args = '"%s" %s' % (reference, wildcard)
     resp = ('LIST',)
     command = imap4.Command(cmd, args, wantResponse=resp)
     d = self.sendCommand(command)
     d.addCallback(self.__cbList, 'LIST')
     return d