#!/usr/bin/python # -*- coding: utf-8 -*- # https://developer.mozilla.org/fr/docs/Mozilla/Thunderbird/Autoconfiguration from sys import stdout import psycopg2 import psycopg2.extras import cgi import cgitb cgitb.enable(display=0, logdir="/tmp") DSN = 'host=db-srv.auf user=XXX password=XXX dbname=AUF' info = { 'login_local': '%EMAILADDRESS%', 'serveur_bal': "imap.refer.org", 'domaine': "refer.org", 'shortname': 'REFER', 'name': 'REFER', } form = cgi.FieldStorage() if form: email = form.getvalue('emailaddress') cnx = psycopg2.connect(DSN) cur = cnx.cursor(cursor_factory=psycopg2.extras.DictCursor) cur.execute("""SELECT login_local,serveur_bal,pays """ """FROM "Authentification".annuaire WHERE courriel=%s""", (email,)) res = cur.fetchall() if res: row = res[0] if row['login_local']: info['login_local'] = row['login_local'] else: info['login_local'] = '%EMAILADDRESS%' info['serveur_bal'] = row['serveur_bal'] #info['domaine'] = row['pays'] + ".auf.org" info['domaine'] = "auf.org" info['shortname'] = 'AUF' info['name'] = 'Agence universitaire de la Francophonie' data = """ %(domaine)s %(name)s %(shortname)s %(serveur_bal)s 993 SSL password-cleartext %(login_local)s %(serveur_bal)s 587 STARTTLS password-cleartext %(login_local)s """ % info headers = dict() headers['Content-Type'] = 'text/xml; charset=utf-8' headers['Vary'] = 'Content-Encoding' headers['Content-Length'] = len(data) # envoi de la réponse headers = ''.join(map(lambda x: "%s: %s\r\n" % (x, headers[x]), headers)) stdout.write(headers + "\r\n") if data: stdout.write(data)