mail: utilisation du context manager pour smtp

This commit is contained in:
Daniel STAN 2014-11-09 14:40:40 +01:00
parent bdeac3f7b0
commit c60a2589a3
3 changed files with 37 additions and 37 deletions

View file

@ -2,12 +2,13 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Auteur: Gabriel Detraz # Auteur: Gabriel Detraz
from lc_ldap import shortcuts
import smtplib
from email.header import Header from email.header import Header
from email.MIMEText import MIMEText from email.MIMEText import MIMEText
from email.Utils import formatdate from email.Utils import formatdate
from lc_ldap import shortcuts
import gestion.mail as mail_module
SEND = False SEND = False
con = shortcuts.lc_ldap_readonly() con = shortcuts.lc_ldap_readonly()
@ -48,5 +49,6 @@ Les membres actifs du Crans'''
MonEmail['To'] = m2 MonEmail['To'] = m2
MonEmail['Date'] = formatdate(localtime=True) MonEmail['Date'] = formatdate(localtime=True)
if SEND: if SEND:
Serveur_SMTP.sendmail('cableurs@lists.crans.org', m2, MonEmail.as_string()) with mail_module.ServerConnection() as conn:
conn.sendmail('cableurs@lists.crans.org', m2, MonEmail.as_string())
Serveur_SMTP.quit() Serveur_SMTP.quit()

View file

@ -2,7 +2,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys
import smtplib
import datetime import datetime
import pytz import pytz
from gestion import config from gestion import config
@ -32,29 +31,29 @@ for adh in conn.search(ldap_filter):
continue continue
mailaddrs.add(mail) mailaddrs.add(mail)
print "Va envoyer le message à %s personnes." % len(mailaddrs)
if not SEND: if not SEND:
print "Va envoyer le message à %s personnes. Mettre la variable SEND à True effectuer l'envoie" % len(mailaddrs) print "Mettre la variable SEND à True effectuer l'envoi"
print "Appuyer sur entrée pour simuler la génération" print "Appuyer sur entrée pour la génération"
raw_input() raw_input()
echecs=[] echecs=[]
conn_smtp=smtplib.SMTP('smtp.adm.crans.org') with mail_module.ServerConnection() as conn_smtp:
for To in mailaddrs: for To in mailaddrs:
cprint(u"Envoi du mail à %s" % To) cprint(u"Envoi du mail à %s" % To)
params = { params = {
'deadline': deadline, 'deadline': deadline,
'To': To, 'To': To,
'lang_info': 'English version below', 'lang_info': 'English version below',
} }
mailtxt=mail_module.generate('carte_etudiant', params).as_string() mailtxt=mail_module.generate('carte_etudiant', params).as_string()
try: try:
if SEND: # TODO DBG_MAIL
conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt) if SEND:
except: conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt)
cprint(u"Erreur lors de l'envoi à %s " % To, "rouge") except:
echecs.append(To) cprint(u"Erreur lors de l'envoi à %s " % To, "rouge")
echecs.append(To)
conn_smtp.quit()
if echecs: if echecs:
print "\nIl y a eu des erreurs :" print "\nIl y a eu des erreurs :"

View file

@ -2,12 +2,13 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys
import smtplib
from gestion import config from gestion import config
from gestion.affich_tools import cprint from gestion.affich_tools import cprint
from gestion import mail from gestion import mail
import lc_ldap.shortcuts import lc_ldap.shortcuts
import gestion.config import gestion.config
import gestiom.mail as mail_module
# Attention, si à True envoie effectivement les mails # Attention, si à True envoie effectivement les mails
SEND=False SEND=False
@ -35,18 +36,16 @@ print "Appuyer sur une touche pour continuer."
raw_input() raw_input()
echecs=[] echecs=[]
conn_smtp=smtplib.SMTP('smtp.adm.crans.org') with mail_module.ServerConnection() as conn_smtp:
for To in mailaddrs: for To in mailaddrs:
cprint(u"Envoi du mail à %s" % To) cprint(u"Envoi du mail à %s" % To)
mailtxt=mail.generate('install-party', {'To':To}).as_string() mailtxt=mail.generate('install-party', {'To':To}).as_string()
try: try:
if SEND: if SEND:
conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt) conn_smtp.sendmail("cableurs@crans.org", (To,), mailtxt)
except: except:
cprint(u"Erreur lors de l'envoi à %s " % To, "rouge") cprint(u"Erreur lors de l'envoi à %s " % To, "rouge")
echecs.append(To) echecs.append(To)
conn_smtp.quit()
if echecs: if echecs:
print "\nIl y a eu des erreurs :" print "\nIl y a eu des erreurs :"