[deconnexion.py] On ne se connecte au SMTP que si besoin est

Ca permet de ne pas laisser trainer une connexion (qui timeout si une requete
prend trop de temps)

darcs-hash:20101010003053-ddb99-035938e92c99e7565f89c456b422ac1d649f1328.gz
This commit is contained in:
Michel Blockelet 2010-10-10 02:30:53 +02:00
parent 0bee018686
commit 2de6874e8a

View file

@ -63,6 +63,7 @@ pgsql.autocommit = True
curseur = pgsql.cursor() curseur = pgsql.cursor()
# Le smtp est assez capricieux # Le smtp est assez capricieux
def connectsmtp():
for i in range(5): for i in range(5):
try: try:
mail = smtplib.SMTP('localhost') mail = smtplib.SMTP('localhost')
@ -71,6 +72,7 @@ for i in range(5):
if i == 4: if i == 4:
print "Impossible de se connecter au SMTP" print "Impossible de se connecter au SMTP"
sys.exit(1) sys.exit(1)
return mail
################################################################################ ################################################################################
# Vérification de l'upload # # Vérification de l'upload #
@ -194,6 +196,8 @@ for elupload, eltype, elid in uploadeurs:
# On envoie un mail à l'adhérent # On envoie un mail à l'adhérent
################################ ################################
mail = connectsmtp()
corps = upload.message_hard % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} corps = upload.message_hard % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()}
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(upload.expediteur, proprio.email(), corps) mail.sendmail(upload.expediteur, proprio.email(), corps)
@ -443,6 +447,8 @@ for ip, id_p2p, nombre in fraudeurs:
blacklist = proprio.blacklist() blacklist = proprio.blacklist()
# Envoi du mail à disconnect # Envoi du mail à disconnect
mail = connectsmtp()
if p2p.disconnect_mail: if p2p.disconnect_mail:
requete = "select date from p2p where date > timestamp 'now' - interval '2 hours' and ip_src='%s' order by date limit 1"%ip requete = "select date from p2p where date > timestamp 'now' - interval '2 hours' and ip_src='%s' order by date limit 1"%ip
curseur.execute(requete) curseur.execute(requete)