From 11a5c70b56e0fd751d6f586941f058c0c9db5ba2 Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Sun, 21 Sep 2014 16:33:51 +0200 Subject: [PATCH] mail de l'install party --- gestion/mail/installparty.py | 53 +++++++++++++++++++ gestion/mail/template/install-party/From/fr | 1 + .../mail/template/install-party/Subject/fr | 1 + gestion/mail/template/install-party/To/fr | 1 + .../mail/template/install-party/X-Mailer/fr | 1 + gestion/mail/template/install-party/body/fr | 15 ++++++ 6 files changed, 72 insertions(+) create mode 100755 gestion/mail/installparty.py create mode 100644 gestion/mail/template/install-party/From/fr create mode 100644 gestion/mail/template/install-party/Subject/fr create mode 100644 gestion/mail/template/install-party/To/fr create mode 100644 gestion/mail/template/install-party/X-Mailer/fr create mode 100644 gestion/mail/template/install-party/body/fr diff --git a/gestion/mail/installparty.py b/gestion/mail/installparty.py new file mode 100755 index 00000000..b424a47a --- /dev/null +++ b/gestion/mail/installparty.py @@ -0,0 +1,53 @@ +#!/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 +import gestion.config + +# Attention, si à True envoie effectivement les mails +SEND=False +# Tous les gens adhérents l'année dernière, qui ont toujours une chambre sur le +# campus (les autres ont potentiellement répondu à chambres_invalides, donc +# on ne va pas les respammer). On considère aussi les membres actifs, +# invariablement. +ldap_filter=u'(&(|(droits=*)(&(!(chbre=EXT))(!(chbre=????))(chbre=*)(!(chbre=EXT))))(aid=*))' + +conn=lc_ldap.shortcuts.lc_ldap_readonly() +mailaddrs=set() +for adh in conn.search(ldap_filter, sizelimit=2000): + # Déjà payé pour l'année en cours + 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())) + +print "Va envoyer le message à %s personnes." % len(mailaddrs) +if not SEND: + print "(Simulation only) Mettre la variable SEND à True effectuer l'envoi" +print "Appuyer sur une touche pour continuer." +raw_input() + +echecs=[] +conn_smtp=smtplib.SMTP('smtp.adm.crans.org') +for To in mailaddrs: + cprint(u"Envoi du mail à %s" % To) + mailtxt=mail.generate('install-party', {'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 diff --git a/gestion/mail/template/install-party/From/fr b/gestion/mail/template/install-party/From/fr new file mode 100644 index 00000000..d881fd7f --- /dev/null +++ b/gestion/mail/template/install-party/From/fr @@ -0,0 +1 @@ +Les câbleurs du Crans diff --git a/gestion/mail/template/install-party/Subject/fr b/gestion/mail/template/install-party/Subject/fr new file mode 100644 index 00000000..b94fe5bf --- /dev/null +++ b/gestion/mail/template/install-party/Subject/fr @@ -0,0 +1 @@ +Install-Party du Crans le 20 Septembre 2014 diff --git a/gestion/mail/template/install-party/To/fr b/gestion/mail/template/install-party/To/fr new file mode 100644 index 00000000..38476730 --- /dev/null +++ b/gestion/mail/template/install-party/To/fr @@ -0,0 +1 @@ +{{To}} diff --git a/gestion/mail/template/install-party/X-Mailer/fr b/gestion/mail/template/install-party/X-Mailer/fr new file mode 100644 index 00000000..f5d9c869 --- /dev/null +++ b/gestion/mail/template/install-party/X-Mailer/fr @@ -0,0 +1 @@ +{{ mailer }} diff --git a/gestion/mail/template/install-party/body/fr b/gestion/mail/template/install-party/body/fr new file mode 100644 index 00000000..f0787e98 --- /dev/null +++ b/gestion/mail/template/install-party/body/fr @@ -0,0 +1,15 @@ +Chère adhérente, cher adhérent, + + Demain Samedi, le Crans organise une Install-Party à la Kfet. Le but est +d'installer un système GNU/linux sur ton ordinateur et de te faire découvrir le +monde du logiciel libre, tout en conservant le système initial (Windows, +Mac OS …). + + Durant cette journée seront proposées viennoiseries, crêpes ainsi que +diverses boissons. Ce serait bête de rater cela ! Nous t'attendons donc de pied +ferme, à la Kfet, à partir de 10h. + +Amicalement, + +-- +les membres actifs du Crans