X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/skins/control/send_email.py?ds=sidebyside diff --git a/skins/control/send_email.py b/skins/control/send_email.py deleted file mode 100644 index 93c573f..0000000 --- a/skins/control/send_email.py +++ /dev/null @@ -1,81 +0,0 @@ -##parameters= other_adr=[], batchM=[], customized_batch={}, expand='', collapse='', subject='', text_body='', wfid=None, send_fields={}, ajax='' -recipients = {'to':[], 'cc':[], 'bcc':[]} -if expand or collapse : - if expand : - expand = expand.keys()[0] - return context.send_email_form(other_adr=other_adr, expand=expand, - batchM=batchM, customized_batch=customized_batch, - subject=subject, text_body=text_body, - send_fields=send_fields) -if batchM : - rolesAndMembers = dict(context.getRecipients()) - for role in batchM : - field = send_fields[role] - recipients[field].extend( [m.id for m in rolesAndMembers[role]] ) - -for role, b in customized_batch.items() : - field = send_fields[role] - recipients[field].extend( b ) - - -other_adr = filter(None, other_adr) -if not (reduce(lambda a, b : a+b, recipients.values()) or other_adr) : - context.setStatus(False, 'No email sent : no recipient specified.') - return context.setRedirect(context, 'object/view') - -portal = context.portal_url.getPortalObject() -mtool = portal.portal_membership -MailHost = portal.MailHost - -from quopri import encodestring - -def encodeAdr(member) : - name = member.getMemberFullName(nameBefore=0) - email = member.getProperty('email') - qpName = encodestring(name).replace('=\n', '') - return '''"=?utf-8?q?%s?=" <%s>''' % (qpName, email) - -sender = mtool.getAuthenticatedMember() -sender = encodeAdr(sender) - - -recipientsFormated = {'to':'', 'cc':'', 'bcc':''} -for field, b in recipients.items() : - formated = map(encodeAdr, mtool.getMembers(b)) - formated = filter(None, formated) - formated = ', '.join(formated) - recipientsFormated[field] = formated - -if other_adr : - recipients['to'].extend(other_adr) - formated = ', '.join(other_adr) - to = ', '.join([recipientsFormated['to'], formated]) - to = to.strip(', ') - recipientsFormated['to'] = to - -recipientsHeader = [] -for field in ['to', 'cc', 'bcc'] : - value = recipientsFormated[field] - if value : - recipientsHeader.append('%s: %s' % (field.capitalize(), value)) - -recipientsHeader = '\n'.join(recipientsHeader) - -message = context.echange_mail_template( From = sender - , recipients = recipientsHeader - , Subject = "=?utf-8?q?%s?=" % encodestring(subject).replace('=\n', '') - , ContentType = 'text/plain' - , charset = 'UTF-8' - , body=text_body) - -MailHost.send( message.encode('utf-8') ) - -if wfid is not None : - wtool = portal.portal_workflow - email_sent = reduce(lambda a, b : a+b, recipients.values()) - wtool.doActionFor(context, 'send_email', wf_id=wfid, - email_sent=email_sent, - comment=text_body) - -context.setStatus(True, 'Email sent.') -return context.setRedirect(context, 'object/view', ajax=ajax) \ No newline at end of file