From 5ac7ee53136ed5cc9eb7b51eba6a589e6ab17a14 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Sat, 13 Aug 2011 04:27:09 +0200
Subject: [PATCH] use email.utils.formataddr instead of '"%s" <%s>' to support
 double-quotes and backslashes correctly.

---
 .../portal_skins/erp5_base/Event_send.xml      | 18 ++++--------------
 bt5/erp5_base/bt/revision                      |  2 +-
 2 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Event_send.xml b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Event_send.xml
index 53e8b82fb7..839c567691 100644
--- a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Event_send.xml
+++ b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Event_send.xml
@@ -50,8 +50,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
+            <value> <string>from email.utils import formataddr\n
 portal = context.getPortalObject()\n
 \n
 if body is None:\n
@@ -64,11 +63,7 @@ if subject is None:\n
 # From\n
 if from_url is None:\n
   sender = context.getSourceValue()\n
-  if sender.getTitle():\n
-    from_url = \'"%s" <%s>\' % (sender.getTitle(),\n
-                            sender.getDefaultEmailText())\n
-  else:\n
-    from_url = sender.getDefaultEmailText()\n
+  from_url = formataddr((sender.getTitle(), sender.getDefaultEmailText()))\n
 \n
 # Return-Path\n
 if reply_url is None:\n
@@ -83,10 +78,7 @@ if to_url is None:\n
   for recipient in context.getDestinationValueList():\n
     email = recipient.getDefaultEmailText()\n
     if email:\n
-      if recipient.getTitle():\n
-        to_url_list.append(\'"%s" <%s>\' % (recipient.getTitle(), email))\n
-      else:\n
-        to_url_list.append(email)\n
+      to_url_list.append(formataddr((recipient.getTitle(), email)))\n
     else:\n
       raise ValueError, \'Recipient %s has no defined email\' % recipient\n
 elif same_type(to_url, \'\'):\n
@@ -138,9 +130,7 @@ if context.getTypeInfo() is not None:\n
 \n
 if download:\n
   return mail_message\n
-
-
-]]></string> </value>
+</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_base/bt/revision b/bt5/erp5_base/bt/revision
index b7e8805f4f..6242099cf1 100644
--- a/bt5/erp5_base/bt/revision
+++ b/bt5/erp5_base/bt/revision
@@ -1 +1 @@
-991
\ No newline at end of file
+992
\ No newline at end of file
-- 
2.30.9