Mercurial > public > sg101
view gpp/mailer/__init__.py @ 507:8631d32e6b16
Some users are still having problems with the pop-up login. I think they are actually getting 403s because of the CSRF protection. So I have modified the base template to always have a javascript variable called csrf_token available when they aren't logged in. The ajax_login.js script was then modified to send this value with the ajax post. Fingers crossed.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 04 Dec 2011 03:05:21 +0000 |
parents | 767cedc7d12a |
children |
line wrap: on
line source
from socket import error as socket_error import smtplib import time import logging import django.core.mail import mailer.models def enqueue_mail(subject, message, from_email, recipient_list): """Creates mailer mail queue entries for the given email.""" if len(subject) > mailer.models.MAX_SUBJECT: subject = u'%s...' % subject[:mailer.models.MAX_SUBJECT - 3] for recipient in recipient_list: mailer.models.Message( from_address=from_email, to_address=recipient, subject=subject, body=message).save() def send_queued_mail(): """Reads the queued messages from the database, sends them, and removes them from the queue.""" sent, errors = 0, 0 logging.debug("Sending queued mail...") start_time = time.time() msgs = mailer.models.Message.objects.all() for msg in msgs: try: django.core.mail.send_mail( msg.subject, msg.body, msg.from_address, [msg.to_address], fail_silently=False) except (socket_error, smtplib.SMTPException), e: errors += 1 logging.error("Error sending queued mail: %s", e) else: sent += 1 msg.delete() end_time = time.time() logging.debug("Sent queued mail: %d successful, %d error(s); elapsed time: %.2f" % ( sent, errors, end_time - start_time))