Changeset 68
- Timestamp:
- 11/07/07 15:03:24 (1 year ago)
- Location:
- branches/3.0
- Files:
-
- 1 added
- 8 modified
-
setup.py (modified) (1 diff)
-
tests/test_message.py (modified) (2 diffs)
-
turbomail/control.py (modified) (2 diffs)
-
turbomail/extensions/notification.py (added)
-
turbomail/extensions/smime.py (modified) (3 diffs)
-
turbomail/extensions/utf8qp.py (modified) (2 diffs)
-
turbomail/managers/demand.py (modified) (1 diff)
-
turbomail/message.py (modified) (4 diffs)
-
turbomail/providers/debug.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/setup.py
r66 r68 65 65 'turbomail.extensions': [ 66 66 "utf8qp = turbomail.extensions.utf8qp", 67 # "notification = turbomail.extensions.notification", 67 68 # "smime = turbomail.extensions.smime", 68 69 # "gpg = turbomail.extensions.gpg", -
branches/3.0/tests/test_message.py
r52 r68 18 18 def setUp(self): 19 19 self.message = Message( 20 sender=("Sender", "sender@example.com"),20 author=("Author", "author@example.com"), 21 21 to=("Recipient", "recipient@example.com"), 22 22 subject="Test message subject.", … … 25 25 26 26 def test_message_properties(self): 27 self.assertEqual(self.message. sender, [("Sender", "sender@example.com")])28 self.assertEqual(str(self.message. sender), "Sender <sender@example.com>")27 self.assertEqual(self.message.author, [("Author", "author@example.com")]) 28 self.assertEqual(str(self.message.author), "Author <author@example.com>") 29 29 self.failUnless(isinstance(self.message.mime, MIMEText)) 30 30 31 31 def test_message_string(self): 32 32 self.failUnless("To: Recipient <recipient@example.com>" in str(self.message)) 33 self.failUnless("From: Sender <sender@example.com>" in str(self.message))33 self.failUnless("From: Author <author@example.com>" in str(self.message)) 34 34 self.failUnless("Subject: Test message subject." in str(self.message)) 35 35 self.failUnless("\n\nThis is a test message plain text body." in str(self.message)) 36 37 def test_mime_generation(self): 38 mime = self.message.mime 39 self.failUnless(self.message.mime is mime) 40 self.message.subject = "Test message subject." 41 self.failIf(self.message.mime is mime) 36 42 37 43 def test_recipients_collection(self): -
branches/3.0/turbomail/control.py
r66 r68 43 43 try: 44 44 import turbogears 45 except ImportError:46 turbomail.config = dict()47 else:48 if not hasattr(turbomail, 'config'):49 turbomail.config = dict()50 return51 45 52 46 turbogears.config.update(turbomail.config) … … 54 48 self.start_extension = self.start 55 49 self.shutdown_extension = self.stop 50 51 except ImportError: 52 pass 53 54 except AttributeError: 55 pass 56 56 57 57 def load_single_entry(self, group, name): -
branches/3.0/turbomail/extensions/smime.py
r66 r68 25 25 self.force = kw.get("force", turbomail.config.get("mail.smime.force", False)) 26 26 27 def process_mime_message(self, message):28 newmessage = message27 def mime_document(self, plain, rich=None): 28 message = super(Message, self).mime_document(plain, rich) 29 29 basepath = turbomail.config.get("mail.smime.keystore", "./") 30 30 … … 32 32 from M2Crypto import BIO, Rand, SMIME 33 33 34 # Make a MemoryBuffer of the message.35 34 buf = BIO.MemoryBuffer(str(message)) 36 37 # Seed the PRNG.38 35 Rand.load_file('randpool.dat', -1) 39 36 40 # Instantiate an SMIME object; set it up; sign the buffer.41 37 s = SMIME.SMIME() 42 38 s.load_key( … … 56 52 del signature['Content-Disposition'] 57 53 signature.add_header("Content-Disposition", "attachment", filename="smime.p7s") 58 59 54 newmessage.attach(signature) 60 55 61 # Save the PRNG's state.62 56 Rand.save_file('randpool.dat') 57 58 return newmessage 63 59 64 return newmessage60 return message -
branches/3.0/turbomail/extensions/utf8qp.py
r66 r68 1 1 # encoding: utf-8 2 2 3 """TurboMail extension API."""3 """TurboMail UTF-8 quoted-printable encoding sample extension.""" 4 4 5 5 __version__ = "$Revision$" … … 13 13 from email import Charset 14 14 15 __all__ = [' start']15 __all__ = ['load'] 16 16 17 17 -
branches/3.0/turbomail/managers/demand.py
r66 r68 70 70 self.spawn() 71 71 72 return True 73 72 74 def wrapper(self): 73 75 log.debug("Mail queue worker starting up.") 74 76 75 self.worker() 77 try: 78 self.worker() 79 80 except: 81 log.exception("Internal error in worker thread.") 76 82 77 83 self.pool -= 1 -
branches/3.0/turbomail/message.py
r66 r68 33 33 This allows you to define your own message to be delivered.""" 34 34 35 def __init__(self, sender, recipient, message):35 def __init__(self, envelope, recipient, message): 36 36 self.id = str(uuid()) 37 self. sender = AddressList(sender)37 self.envelope = AddressList(envelope) 38 38 self.recipient = AddressList(recipient) 39 39 self.message = message 40 40 41 41 super(StubMessage, self).__init__() 42 43 envelope = proeprty(lambda self: self.sender)44 42 45 43 def __str__(self): … … 72 70 if 'senders' in kw: kw['sender'] == kw['senders'] 73 71 74 self._author = AddressList(configget(" from", "mail.message.author"))72 self._author = AddressList(configget("author", "mail.message.author")) 75 73 self._sender = AddressList(configget("sender", "mail.message.sender")) 76 74 self._reply = AddressList(configget("reply", "mail.message.reply")) … … 135 133 recipients = property(recipients) 136 134 137 def mime Document(self, plain, rich=None):135 def mime_document(self, plain, rich=None): 138 136 if not rich: 139 137 message = plain … … 179 177 rich = MIMEText(self._callable(self.rich).encode(self.encoding), 'html', self.encoding) 180 178 181 message = self.generate_mime_document(plain, rich) 182 183 if hasattr(self, "process_mime_message"): 184 message = self.process_mime_message(message) 179 message = self.mime_document(plain, rich) 185 180 186 181 headers = [ -
branches/3.0/turbomail/providers/debug.py
r66 r68 31 31 log.info("Attempting delivery of message %s." % message.id) 32 32 deliverylog.info("%s DELIVER" % message.id) 33 deliverylog.debug("%s SUBJECT \"%s\"" % (message.id, message.subject))34 deliverylog.debug("%s FROM%s %s" % (message.id, len(message.author) != 1 and "S" or "", str(message.author.addresses).replace("\n", "")))35 if message.senders:36 deliverylog.debug("%s SENDER%s %s" % (message.id, len(message.sender) != 1 and "S" or "", str(message.sender.addresses).replace("\n", "")))37 deliverylog.debug("%s RECIPIENTS %s" % (message.id, str(message.recipients.addresses).replace("\n", "")))38 33 39 34 for i in str(message).split("\n"):
