diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml index 99c356f6142afac154cc00bde516ff1ffbe414f6..95918e61319e37ce91451a63fd4b066244c1667b 100644 --- a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml +++ b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/Entity_sendEmail.xml @@ -50,7 +50,9 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>from email.utils import formataddr\n + <value> <string encoding="cdata"><![CDATA[ + +from email.utils import formataddr\n portal = context.getPortalObject()\n event = portal.restrictedTraverse(event_relative_url)\n \n @@ -82,23 +84,23 @@ mail_message = portal.Base_createMailMessageAsString(from_url,\n \n event.sendMailHostMessage(mail_message)\n \n -if not event.hasData():\n +if not event.hasData() and len(event.getDestinationList()) > 1:\n # Store the content of the email as data, so that we can keep a reference to\n # the email that was actually sent.\n - # XXX this has no meaning in the case of an email with multiple recipents.\n + # We do not store when there is more than one recipent.\n if len(embedded_file_list):\n # do not store aggregated documents in Email document\n # to avoid duplicate data\n - tmp_mail_message = context.Base_createMailMessageAsString(from_url,\n + mail_message = context.Base_createMailMessageAsString(from_url,\n to_url,\n subject,\n body,\n content_type,\n attachment_list=attachment_list)\n - event.setData(tmp_mail_message)\n - else:\n - event.setData(mail_message)\n -</string> </value> + event.setData(mail_message)\n + + +]]></string> </value> </item> <item> <key> <string>_params</string> </key> diff --git a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_sendByActivity.xml b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_sendByActivity.xml index 2d4e48cd0209551cd850ea02833bb451beec19f8..1b92b4a8db9155b2bccf1b5ca86d15be1597dbbd 100644 --- a/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_sendByActivity.xml +++ b/bt5/erp5_base/SkinTemplateItem/portal_skins/erp5_base/MailMessage_sendByActivity.xml @@ -50,10 +50,17 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>context.getPortalObject().portal_catalog.searchAndActivate(\n + <value> <string># We do not want to retry those activities, as sending email is not transactional safe\n +activate_kw = kw.pop(\'activate_kw\', {})\n +activate_kw[\'max_retry\'] = 0\n +activate_kw[\'conflict_retry\'] = False\n +\n +context.getPortalObject().portal_catalog.searchAndActivate(\n method_id="Entity_sendEmail",\n destination_related_uid=context.getUid(),\n - method_kw=method_kw, **kw)\n + method_kw=method_kw,\n + activate_kw=activate_kw,\n + **kw)\n </string> </value> </item> <item>