1.1 --- a/imip_manager.py Tue Oct 28 18:04:05 2014 +0100
1.2 +++ b/imip_manager.py Tue Oct 28 18:22:28 2014 +0100
1.3 @@ -86,8 +86,8 @@
1.4
1.5 node = to_node({self.objtype : [(self.details, {})]})
1.6 part = to_part("REPLY", [node])
1.7 - message = self.messenger.make_message([part], self.organisers)
1.8 - self.messenger.sendmail(self.organisers, message.as_string())
1.9 + message = self.messenger.make_message([part], self.organisers, sender=sender)
1.10 + self.messenger.sendmail(self.organisers, message.as_string(), sender=sender)
1.11
1.12 # Action methods.
1.13
2.1 --- a/imiptools/__init__.py Tue Oct 28 18:04:05 2014 +0100
2.2 +++ b/imiptools/__init__.py Tue Oct 28 18:22:28 2014 +0100
2.3 @@ -86,7 +86,7 @@
2.4 if "-d" in sys.argv:
2.5 print message
2.6 elif self.lmtp_socket:
2.7 - self.messenger.sendmail(original_recipients, message.as_string(), self.lmtp_socket)
2.8 + self.messenger.sendmail(original_recipients, message.as_string(), lmtp_socket=self.lmtp_socket)
2.9
2.10 # Unhandled messages are delivered as they are.
2.11
2.12 @@ -94,7 +94,7 @@
2.13 if "-d" in sys.argv:
2.14 print msg
2.15 elif self.lmtp_socket:
2.16 - self.messenger.sendmail(original_recipients, msg.as_string(), self.lmtp_socket)
2.17 + self.messenger.sendmail(original_recipients, msg.as_string(), lmtp_socket=self.lmtp_socket)
2.18
2.19 def process_args(self, args, stream):
2.20
3.1 --- a/imiptools/mail.py Tue Oct 28 18:04:05 2014 +0100
3.2 +++ b/imiptools/mail.py Tue Oct 28 18:22:28 2014 +0100
3.3 @@ -22,12 +22,12 @@
3.4 self.subject = subject or MESSAGE_SUBJECT
3.5 self.body_text = body_text or MESSAGE_TEXT
3.6
3.7 - def sendmail(self, recipients, data, lmtp_socket=None):
3.8 + def sendmail(self, recipients, data, sender=None, lmtp_socket=None):
3.9
3.10 """
3.11 Send a mail to the given 'recipients' consisting of the given 'data',
3.12 - delivering to a local mail system using LMTP if 'lmtp_socket' is
3.13 - provided.
3.14 + using the given 'sender' identity if indicated, delivering to a local
3.15 + mail system using LMTP if 'lmtp_socket' is provided.
3.16 """
3.17
3.18 if lmtp_socket:
3.19 @@ -35,19 +35,22 @@
3.20 else:
3.21 smtp = SMTP("localhost")
3.22
3.23 - smtp.sendmail(self.sender, recipients, data)
3.24 + smtp.sendmail(sender or self.sender, recipients, data)
3.25 smtp.quit()
3.26
3.27 - def make_message(self, parts, recipients):
3.28 + def make_message(self, parts, recipients, sender=None):
3.29
3.30 - "Make a message from the given 'parts' for the given 'recipients'."
3.31 + """
3.32 + Make a message from the given 'parts' for the given 'recipients', using
3.33 + the given 'sender' identity if indicated.
3.34 + """
3.35
3.36 message = MIMEMultipart("mixed", _subparts=parts)
3.37 message.preamble = self.body_text
3.38 payload = message.get_payload()
3.39 payload.insert(0, MIMEText(self.body_text))
3.40
3.41 - message["From"] = self.sender
3.42 + message["From"] = sender or self.sender
3.43 for recipient in recipients:
3.44 message["To"] = recipient
3.45 message["Subject"] = self.subject