[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - sending mails immediately is now enforced

Yvo Schubbe cvs-admin at zope.org
Thu Sep 6 09:19:59 UTC 2012


Log message for revision 127739:
  - sending mails immediately is now enforced

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2012-09-06 09:04:07 UTC (rev 127738)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2012-09-06 09:19:56 UTC (rev 127739)
@@ -12,7 +12,8 @@
 
 - RegistrationTool: Improved 'mailPassword' and 'registeredNotify' methods.
   Mail templates can now be views. 'mail_password_response' is no longer
-  required, using the return value of 'mailPassword' is deprecated.
+  required, using the return value of 'mailPassword' is deprecated. Sending
+  mails immediately is now enforced to allow better error handling.
 
 - PropertiesTool: Fixed editing single properties.
 

Modified: Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py	2012-09-06 09:04:07 UTC (rev 127738)
+++ Products.CMFDefault/trunk/Products/CMFDefault/RegistrationTool.py	2012-09-06 09:19:56 UTC (rev 127739)
@@ -153,7 +153,11 @@
             mail_text = method(**kw)
 
         host = getUtility(IMailHost)
-        host.send(mail_text)
+        try:
+            host.send(mail_text, immediate=True)
+        except TypeError:
+            # fallback for mail hosts that don't implement the new signature
+            host.send(mail_text)
 
         try:
             # BBB: for CMF 2.2's mail_password script
@@ -198,7 +202,11 @@
             mail_text = method(**kw)
 
         host = getUtility(IMailHost)
-        host.send(mail_text)
+        try:
+            host.send(mail_text, immediate=True)
+        except TypeError:
+            # fallback for mail hosts that don't implement the new signature
+            host.send(mail_text)
 
     security.declareProtected(ManagePortal, 'editMember')
     @postonly

Modified: Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt	2012-09-06 09:04:07 UTC (rev 127738)
+++ Products.CMFDefault/trunk/Products/CMFDefault/tests/RegistrationTool.txt	2012-09-06 09:19:56 UTC (rev 127739)
@@ -13,7 +13,8 @@
     ...     def getMemberById(self, id): return Member()
 
     >>> class MailHost:
-    ...     def send(self, messageText): self.lastMessage = messageText
+    ...     def send(self, messageText, immediate=False):
+    ...         self.lastMessage = messageText
 
     >>> class PasswordEmail(Implicit):
     ...     def __call__(self, **kw):



More information about the checkins mailing list