def process(self, data): mailpath, filename = self.get_paths(data) ## First check integrity error = None if not access(mailpath, F_OK | R_OK | W_OK): error = 'No access to mailpath' try: makedirs(mailpath, 0700) error = None except: t, val, tb = exc_info() del tb error = '%s: %s' % (t, val) self.LOG(E_ERR, 'Filesystem Backend: Cannot create storage directory: ' + str(val)) if error is not None: return 0, 443, error if self.compression is not None: name = '%d-%d.eml' % (data['year'], data['pid']) comp = CompressedFile(compressor=self.compression[0], ratio=self.compression[1], name=name) comp.write(data['mail']) data['mail'] = comp.getdata() comp.close() try: fd = open(filename, 'wb') fd.write(data['mail']) fd.flush() fd.close() self.LOG(E_TRACE, 'Filesystem Backend: wrote ' + filename) return BACKEND_OK except: t, val, tb = exc_info() del tb self.LOG(E_ERR, 'Filesystem Backend: Cannot write mail file: ' + str(val)) return 0, 443, '%s: %s' % (t, val)