mail['Return-Path'] = conf.get('mail', 'admin')
mail['X-Mailer'] = 'sercom ' + sercom.VERSION
mail['X-Priority'] = '5'
- smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
- smtp.sendmail(mail['From'], mail['To'], mail.as_string())
- smtp.close()
+ sent = False
+ while not sent:
+ try:
+ smtp = smtplib.SMTP(conf.get('mail', 'smtp'))
+ smtp.sendmail(mail['From'], mail['To'], mail.as_string())
+ smtp.close()
+ sent = True
+ except smtplib.SMTPException, e:
+ log.warning('No se pudo enviar el mail a %s (%s)',
+ inscripto.padron, inscripto.mail)
+ time.sleep(1)
# Inicializo
conf, conn, log = sercom.init('deliver')
# Busco entregas pendientes
for entrega in Entrega.getPendientes(conn):
+ log.debug('Hay una entrega pendiente: %d.%d.%d', entrega.curso.curso,
+ entrega.nroEjercicio, entrega.entrega)
while Intento.faltaCompilar(entrega, conn):
+ log.debug('Esperando que termine de compilar, faltan %d intentos',
+ Intento.faltaCompilar(entrega, conn))
time.sleep(intervalo)
log.info('Procesando entrega %d.%d.%d', entrega.curso.curso,
entrega.nroEjercicio, entrega.entrega)
log.debug('Entrega finalizada')
entrega.finalizada = True
+log.info('Finalizado')