#!/usr/bin/env python import kopano from MAPI.Util import * try: import json except ImportError: import simplejson as json def opt_args(): parser = kopano.parser('skpcf') parser.add_option("--user", dest="user", action="store", help="Dump signatures for user") return parser.parse_args() def main(): options, args = opt_args() if not options.user: print 'Please use:\n %s --user ' % (sys.argv[0]) else: user = kopano.Server(options=options).user(options.user) try: settings = json.loads(user.store.prop(PR_EC_WEBACCESS_SETTINGS_JSON).value) except Exception as e: print 'Could not load WebApp settings for user %s (Error: %s)' % (user.name, repr(e)) else: if len(settings['settings']['zarafa']['v1']['contexts']['mail']): if 'signatures' in settings['settings']['zarafa']['v1']['contexts']['mail']: for item in settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all']: name = settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all'][item]['name'] filename = '%s-%s-%s.html' % (user.name, name.replace(' ', '-'), item) with open(filename, 'w') as outfile: print 'Dumping: \'%s\' to \'%s\' ' % (name, filename) outfile.write(settings['settings']['zarafa']['v1']['contexts']['mail']['signatures']['all'][item]['content'].encode('utf-8')) if __name__ == '__main__': main()