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))
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', )))
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
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
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