From f1c5001f8edf69fda4bb0479559e28312cad5c61 Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Wed, 29 Oct 2014 19:07:16 +0100 Subject: [PATCH] DBG_MAIL: environnement de test --- gestion/mail/mail.py | 18 ++++++++++++++---- testing.sh | 7 +++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gestion/mail/mail.py b/gestion/mail/mail.py index e01f1805..bfded41a 100644 --- a/gestion/mail/mail.py +++ b/gestion/mail/mail.py @@ -50,7 +50,7 @@ markup = { 'md' : markdown, } -### For an example: +### For an example: ### print generate('bienvenue', {'From':'respbats@crans.org', 'To':'admin@genua.fr', 'lang_info':'English version below'}).as_string() ### or from a shell : python -c "import mail; print mail.generate('bienvenue', {'From':'respbats@crans.org', 'To':'admin@genua.fr', 'lang_info':'English version below'})" @@ -70,7 +70,7 @@ def get_lang(mail, part, lang, lang_fallback): if os.path.isfile(template_path + mail + '/' + part + '/' + l): return l, None, template_path + mail + '/' + part + '/' + l raise ValueError("Language %s nor %s found" % (lang, lang_fallback)) - + def gen_local_body(fname, params, lang): """Génère le texte localisé d'un body""" locales = { @@ -123,7 +123,7 @@ def generate(mail, params, lang=default_language, lang_fallback=default_language for filename in [dir for dir in os.listdir(template_path + mail) if os.path.isdir(template_path + mail + '/' + dir)]: lang_tmp, mk, file = get_lang(mail, filename, lang, lang_fallback) - if filename == 'body': + if filename == 'body': for part in body(mail, lang_tmp, lang_alt, mk, params, charset): msg.attach(part) else: @@ -162,7 +162,17 @@ class ServerConnection(object): _conn = None def __enter__(self): self._conn = smtplib.SMTP('smtp.adm.crans.org') - return self._conn + return self + + def sendmail(self, From, to, mail): + if os.getenv('DBG_MAIL', False): + deb = os.getenv('DBG_MAIL') + if '@' in deb: + to = [deb] + else: + print mail + return + self._conn.sendmail(From, to, mail) def __exit__(self, type, value, traceback): self._conn.quit() diff --git a/testing.sh b/testing.sh index 36420977..cf4d6d13 100644 --- a/testing.sh +++ b/testing.sh @@ -4,3 +4,10 @@ # Utiliser ldap local export DBG_LDAP=1 +# Mails auto, plusieurs valeurs: +# * print: affiche le mail au lieu de l'envoyer +# * une adresse mail: envoie tous les mails à cette adresse mail au lieu de +# la vraie +# NB: noter que pour le moment, cela ne marche pas avec tous les scripts. +# Attention à ne pas envoyer de mails aux adhérents par erreurs ! +export DBG_MAIL=dstan+test@crans.org