Emails personalizados

Una funcionalidad muy útil a la hora de crear o modificar expedientes es el envío automático de eamils personalizados

Dejamos aquí un código ejemplo para utilizar en un script post edit. (este script lo dejaremos en portal_skins --> custom como siempre, y lo asociaremos a la propiedad post edit action del patrón)



from AccessControl import getSecurityManager
from Products.KMKeyCore.pattern import KMObjectCreationAdapter
from Products.CMFCore.utils import getToolByName
from DateTime.DateTime import DateTime
from urllib import unquote

if not proxy or not content:
  return
rq = context.REQUEST

from Products.KMKeyCore.pattern import KMObjectCreationAdapter
adapter = KMObjectCreationAdapter(proxy)

idd = proxy.getDocid()
if rq.get('enviaMailEscalarExecuted2_%s' % idd, False):
    return
else:
    adapter.setValueToDataModel(rq,'enviaMailEscalarExecuted2_%s' % idd,True)
 
enviar=False
cdm = content.getDataModel()
catalog = proxy.portal_catalog
reference=cdm.get('reference','')
creador = context.portal_vocabularies.members.get(cdm['creador'],cdm['creador'])

if not hasattr(rqs,'form'):
   return

if rqs.form.has_key('widget__mi_campo'):
#DETECTAR EL CAMBIO DEL CAMPO EN CUESTIÓN
    new=''
    if rqs:
       new = rqs.form['widget__campo que cambia']
    old = proxy['dept_pers']
    if not old: old = ''
    if not new: new=''

    if rqs and new!=old:
        #Enviar mail de modificaion a rr_pers
        brains = catalog(username=new)
        nombre=''
        mto=''
        if len(brains) and brains[0].email:
           mto = "%s <%s>"%(brains[0].fullname,brains[0].email)            
           nombre = brains[0].Title
           if brains[0].email:
             utool = context.portal_url
             url =  context.REQUEST['BASE0'] + '/misite/' + utool.getRelativeContentURL(proxy)
             subject='Subject del Email- %s - %s'%(reference,nombre)
             body="""
           
           
             Cabecera del body : %s
           
             Título : %s
             Descripción : %s

             Otros campos etc... : %s

           

             Click aquí para acceder
           
           


"""%(cdm['Title'],cdm['Description'],cdm['category'],url)

             proxy.createEmail(subject=subject,body=body,email_to  = mto)