#!/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 gestion.config.periode_transitoire = False # 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=????))(chbre=*)(!(chbre=EXT))))(paiement=2013)(aid=*))' conn=lc_ldap.shortcuts.lc_ldap_readonly() mailaddrs=set() for adh in conn.search(ldap_filter): # Déjà payé pour l'année en cours if adh.paiement_ok(): continue addr = adh.get_mail() if addr: mailaddrs.add(addr) 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." 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, 'lang_info':'English version below'}).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