Esempio n. 1
0
def get_system_default_handler():
    """Return app info for system default mailto handler"""
    url = CFURLCreateWithString(None, 'mailto:[email protected]', None)
    app = {}
    ok, info, nsurl = LSGetApplicationForURL(url, kLSRolesAll,
                                             None, None)

    app['path'] = nsurl_to_path(nsurl)
    app['name'] = appname(app['path'])
    app['bundleid'] = bundleid(app['path'])

    log.debug('System default mailto handler : {}'.format(app))
    return app
Esempio n. 2
0
def get_email_handlers():
    """Find all apps that can handle mailto URLs"""

    url = CFURLCreateWithString(None, 'mailto:[email protected]', None)
    apps = {}

    nsurls = LSCopyApplicationURLsForURL(url, kLSRolesAll)
    paths = set([nsurl_to_path(nsurl) for nsurl in nsurls])

    for path in paths:
        app = {'path': path}
        app['name'] = appname(path)
        app['bundleid'] = bundleid(path)
        apps[app['bundleid']] = app
        log.debug('mailto handler : {} // {}'.format(
                  app['bundleid'], app['path']))

    apps = sorted(apps.values(), key=lambda d: d['name'])

    log.debug('{} email clients found'.format(len(apps)))

    return apps