# HG changeset patch # User Paul Boddie # Date 1414511726 -3600 # Node ID 302a73f826d1995826319f44b87f348f52f3bedd # Parent 56ec48e6cedb824bc89b1331c1741f7d97dd5806 Moved mail-related functionality into a separate module. diff -r 56ec48e6cedb -r 302a73f826d1 imip_manager.py --- a/imip_manager.py Tue Oct 28 00:09:46 2014 +0100 +++ b/imip_manager.py Tue Oct 28 16:55:26 2014 +0100 @@ -4,11 +4,11 @@ sys.path.append("/var/lib/imip-agent") -from imiptools import Messenger from imiptools.content import Handler, \ format_datetime, get_address, get_datetime, \ get_item, get_uri, get_utc_datetime, get_values, \ parse_object, to_part, to_timezone +from imiptools.mail import Messenger from imiptools.period import have_conflict from vCalendar import to_node import markup diff -r 56ec48e6cedb -r 302a73f826d1 imiptools/__init__.py --- a/imiptools/__init__.py Tue Oct 28 00:09:46 2014 +0100 +++ b/imiptools/__init__.py Tue Oct 28 16:55:26 2014 +0100 @@ -1,21 +1,10 @@ #!/usr/bin/env python from email import message_from_file -from email.mime.message import MIMEMessage -from email.mime.multipart import MIMEMultipart -from email.mime.text import MIMEText -from smtplib import LMTP, SMTP from imiptools.content import handle_itip_part +from imiptools.mail import Messenger import sys -MESSAGE_SENDER = "resources+agent@example.com" - -MESSAGE_SUBJECT = "Calendar system message" - -MESSAGE_TEXT = """\ -This is a response to a calendar message sent by your calendar program. -""" - # Postfix exit codes. EX_TEMPFAIL = 75 @@ -35,61 +24,6 @@ l += [s.strip() for s in v.split(",")] return l -class Messenger: - - "Sending of outgoing messages." - - def __init__(self, sender=None, subject=None, body_text=None): - self.sender = sender or MESSAGE_SENDER - self.subject = subject or MESSAGE_SUBJECT - self.body_text = body_text or MESSAGE_TEXT - - def sendmail(self, recipients, data, lmtp_socket=None): - - """ - Send a mail to the given 'recipients' consisting of the given 'data', - delivering to a local mail system using LMTP if 'lmtp_socket' is - provided. - """ - - if lmtp_socket: - smtp = LMTP(lmtp_socket) - else: - smtp = SMTP("localhost") - - smtp.sendmail(self.sender, recipients, data) - smtp.quit() - - def make_message(self, parts, recipients): - - "Make a message from the given 'parts' for the given 'recipients'." - - message = MIMEMultipart("mixed", _subparts=parts) - message.preamble = self.body_text - payload = message.get_payload() - payload.insert(0, MIMEText(self.body_text)) - - message["From"] = self.sender - for recipient in recipients: - message["To"] = recipient - message["Subject"] = self.subject - - return message - - def wrap_message(self, msg, parts): - - "Wrap 'msg' and provide the given 'parts' as the primary content." - - message = MIMEMultipart("mixed", _subparts=parts) - message.preamble = self.body_text - message.get_payload().append(MIMEMessage(msg)) - - message["From"] = msg["From"] - message["To"] = msg["To"] - message["Subject"] = msg["Subject"] - - return message - class Processor: "The processing framework." diff -r 56ec48e6cedb -r 302a73f826d1 imiptools/mail.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imiptools/mail.py Tue Oct 28 16:55:26 2014 +0100 @@ -0,0 +1,71 @@ +#!/usr/bin/env python + +from email.mime.message import MIMEMessage +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText +from smtplib import LMTP, SMTP + +MESSAGE_SENDER = "resources+agent@example.com" + +MESSAGE_SUBJECT = "Calendar system message" + +MESSAGE_TEXT = """\ +This is a response to a calendar message sent by your calendar program. +""" + +class Messenger: + + "Sending of outgoing messages." + + def __init__(self, sender=None, subject=None, body_text=None): + self.sender = sender or MESSAGE_SENDER + self.subject = subject or MESSAGE_SUBJECT + self.body_text = body_text or MESSAGE_TEXT + + def sendmail(self, recipients, data, lmtp_socket=None): + + """ + Send a mail to the given 'recipients' consisting of the given 'data', + delivering to a local mail system using LMTP if 'lmtp_socket' is + provided. + """ + + if lmtp_socket: + smtp = LMTP(lmtp_socket) + else: + smtp = SMTP("localhost") + + smtp.sendmail(self.sender, recipients, data) + smtp.quit() + + def make_message(self, parts, recipients): + + "Make a message from the given 'parts' for the given 'recipients'." + + message = MIMEMultipart("mixed", _subparts=parts) + message.preamble = self.body_text + payload = message.get_payload() + payload.insert(0, MIMEText(self.body_text)) + + message["From"] = self.sender + for recipient in recipients: + message["To"] = recipient + message["Subject"] = self.subject + + return message + + def wrap_message(self, msg, parts): + + "Wrap 'msg' and provide the given 'parts' as the primary content." + + message = MIMEMultipart("mixed", _subparts=parts) + message.preamble = self.body_text + message.get_payload().append(MIMEMessage(msg)) + + message["From"] = msg["From"] + message["To"] = msg["To"] + message["Subject"] = msg["Subject"] + + return message + +# vim: tabstop=4 expandtab shiftwidth=4