#!/usr/bin/env python import datetime, os, sys import syslog # boilerplate basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")) sys.path = [ basedir ] + sys.path os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings" virtualenv_activation = os.path.join(basedir, "bin", "activate_this.py") if os.path.exists(virtualenv_activation): execfile(virtualenv_activation, dict(__file__=virtualenv_activation)) syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER) import django django.setup() from ietf.utils.mail import log_smtp_exception, send_error_email from smtplib import SMTPException if len(sys.argv) != 2 or sys.argv[1] not in ('all', 'rsync', 'specific'): print "USAGE: %s " % os.path.basename(__file__) print "'all' means all not sent" print "'specific' means all not sent that are due to be sent" sys.exit(1) from ietf.message.utils import send_scheduled_message_from_send_queue from ietf.message.models import SendQueue mode = sys.argv[1] now = datetime.datetime.now() needs_sending = SendQueue.objects.filter(sent_at=None).select_related("message") if mode == "specific": needs_sending = needs_sending.exclude(send_at=None).filter(send_at__lte=now) for s in needs_sending: try: send_scheduled_message_from_send_queue(s) syslog.syslog(u'Sent scheduled message %s "%s"' % (s.id, s.message.subject)) except SMTPException as e: log_smtp_exception(e) send_error_email(e)