From cf5f2a9088f95474652ef6feb19a30fb2d728744 Mon Sep 17 00:00:00 2001 From: Jordan Delorme Date: Sat, 13 Sep 2014 17:10:26 +0200 Subject: [PATCH] =?UTF-8?q?Script=20d'envoi=20des=20mails=20de=20r=C3=A9in?= =?UTF-8?q?scription?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/mail/reinscription.py | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 gestion/mail/reinscription.py diff --git a/gestion/mail/reinscription.py b/gestion/mail/reinscription.py new file mode 100755 index 00000000..adb5875f --- /dev/null +++ b/gestion/mail/reinscription.py @@ -0,0 +1,46 @@ +#!/bin/bash /usr/scripts/python.sh +# -*- coding: utf-8 -*- + +import sys +import smtplib +from gestion import config +from gestion.affich_tools import cprint +from gestion import mail +import lc_ldap.shortcuts + +# Attention, si à True envoie effectivement les mails +SEND=False +ldap_filter=u'(&(!(chbre=????))(chbre=*)(!(chbre=EXT))(paiement=2013)(aid=*))' + + +conn=lc_ldap.shortcuts.lc_ldap_readonly() +mailaddrs=set() +for adh in conn.search(ldap_filter): + if 'canonicalAlias' in adh.attrs.keys(): + mailaddrs.add(str(adh['canonicalAlias'][0])) + elif 'mail' in adh.attrs.keys(): + mailaddrs.add(str(adh['mail'][0])) + else: + raise ValueError("%r has nor mail nor canonicalAlias, only %s" % (adh, adh.attrs.keys())) + +#mailaddrs=["David.Marshall@crans.org", "Bertrand.Bryche@crans.org", "Karima.Toiybou@crans.org", "Thomas.Marchandier@crans.org"] +if not SEND: + print "Va envoyer le message à %s personnes. Mettre la variable SEND à True effectuer l'envoi" % len(mailaddrs) + +echecs=[] +conn_smtp=smtplib.SMTP('smtp.adm.crans.org') +for To in mailaddrs: + cprint(u"Envoi du mail à %s" % To) + mailtxt=mail.generate('reinscription', {'To':To}).as_string() + try: + if SEND: + conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt) + except: + cprint(u"Erreur lors de l'envoi à %s " % To, "rouge") + echecs.append(To) + +conn_smtp.quit() + +if echecs: + print "\nIl y a eu des erreurs :" + print echecs