datatracker/ietf/announcements/send_scheduled.py
Ole Laursen af768fb633 Fix a bunch of merge bugs
- Legacy-Id: 3191
2011-06-29 13:05:11 +00:00

69 lines
2.9 KiB
Python

import re, datetime, email
from django.conf import settings
from ietf.utils.mail import send_mail_text, send_mail_mime
first_dot_on_line_re = re.compile(r'^\.', re.MULTILINE)
def send_scheduled_announcement(announcement):
# for some reason, the old Perl code base substituted away . on line starts
body = first_dot_on_line_re.sub("", announcement.body)
extra = {}
if announcement.replyto:
extra['Reply-To'] = announcement.replyto
# announcement.content_type can contain a case-sensitive parts separator,
# so we need to keep it as is, not lowercased, but we want a lowercased
# version for the coming comparisons.
content_type_lowercase = announcement.content_type.lower()
if not content_type_lowercase or 'text/plain' in content_type_lowercase:
send_mail_text(None, announcement.to_val, announcement.from_val, announcement.subject,
body, cc=announcement.cc_val, bcc=announcement.bcc_val)
elif 'multipart/' in content_type_lowercase:
# make body a real message so we can parse it.
body = ("MIME-Version: 1.0\r\nContent-Type: %s\r\n" % announcement.content_type) + body
msg = email.message_from_string(body.encode("utf-8"))
send_mail_mime(None, announcement.to_val, announcement.from_val, announcement.subject,
msg, cc=announcement.cc_val, bcc=announcement.bcc_val)
now = datetime.datetime.now()
announcement.actual_sent_date = now.date()
announcement.actual_sent_time = str(now.time())
announcement.mail_sent = True
announcement.save()
def send_scheduled_announcementREDESIGN(send_queue):
message = send_queue.message
# for some reason, the old Perl code base substituted away . on line starts
body = first_dot_on_line_re.sub("", message.body)
extra = {}
if message.reply_to:
extra['Reply-To'] = message.reply_to
# announcement.content_type can contain a case-sensitive parts separator,
# so we need to keep it as is, not lowercased, but we want a lowercased
# version for the coming comparisons.
content_type_lowercase = message.content_type.lower()
if not content_type_lowercase or 'text/plain' in content_type_lowercase:
send_mail_text(None, message.to, message.frm, message.subject,
body, cc=message.cc, bcc=message.bcc)
elif 'multipart' in content_type_lowercase:
# make body a real message so we can parse it
body = ("MIME-Version: 1.0\r\nContent-Type: %s\r\n" % message.content_type) + body
msg = email.message_from_string(body.encode("utf-8"))
send_mail_mime(None, message.to, message.frm, message.subject,
msg, cc=message.cc, bcc=message.bcc)
send_queue.sent_at = datetime.datetime.now()
send_queue.save()
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
send_scheduled_announcement = send_scheduled_announcementREDESIGN