Plantillas de correo¶
Una plantilla de correo es el cuerpo de un mensaje que envía el proceso: el texto detrás
de la notificación de tarea o el archivo que un
desencadenador nombra en PMFSendMessage().
Las plantillas pertenecen al proceso. Abre el proceso y elige Plantillas: puedes escribir una en el editor o subir un archivo de texto plano o HTML. El archivo que subes es el que usa el proceso; el editor es una comodidad, no una segunda copia.
Marcadores¶
El cuerpo es texto con variables del caso:
<p>Estimado @#reqUserName,</p>
<p>Su solicitud de permiso fue aprobada: @#daysReq días, del @#fromReq al @#toReq.</p>
@#Variableinserta el valor de la variable del caso con ese nombre.- Una variable que el caso no guardó se imprime como nada, no como
@#Variable. Es la causa habitual de una plantilla que llega con una línea en blanco. - Un desencadenador puede pasar valores extra en el argumento
emailTemplateVariablesdePMFSendMessage(); se combinan sobre los datos del caso, así que también pueden sobrescribirlos.
El valor se inserta como texto. Si la variable contiene HTML, se escapa.
Repetir una grilla¶
Una grilla se imprime con un bloque que se repite por cada fila:
<table>
<tr><th>Desde</th><th>Hasta</th><th>Días</th></tr>
@>reqLeaveGrid
<tr><td>@#detDateFrom</td><td>@#detDateTo</td><td>@#detNoDays</td></tr>
@<reqLeaveGrid
</table>
Todo lo que está entre @>reqLeaveGrid y @<reqLeaveGrid se repite una vez por fila, con
las columnas de esa fila en lugar de los marcadores. Un bloque que nunca se cierra se traga
el resto del mensaje: el síntoma clásico de "mi correo se corta después de la tabla".
Las plantillas antiguas envuelven los marcadores en comentarios HTML (<!-- @>grid -->),
que también funciona y mantiene los marcadores fuera de un cliente de texto plano. Cualquiera
de las dos formas sirve; sé consistente dentro de una misma plantilla.
Imágenes¶
Una imagen de la plantilla debe ser alcanzable por el destinatario, no por el servidor:
<img src="https://docs.example.com/assets/logo.png" alt="Lurana">
Una ruta relativa o un archivo dentro del caso no viaja con el correo: el destinatario ve una imagen rota.
Enviarla¶
Desde un desencadenador:
PMFSendMessage(
$_SESSION["APPLICATION"],
"no-reply@example.com",
@@NotifyTo,
"",
"",
"Solicitud de permiso aprobada",
"leave-approved.html",
["daysReq" => @%Days]
);
| Posición | Argumento |
|---|---|
| 1 | Id del caso |
| 2 | Dirección del remitente |
| 3–5 | Para, cc, cco — separados por comas para varios destinatarios |
| 6 | Asunto |
| 7 | Nombre del archivo de plantilla |
| 8 | Variables extra para la plantilla |
| 9 | Adjuntos (rutas completas) |
PMFSendMessageToGroup() envía a un grupo en lugar de a una lista de direcciones. Las dos
están en la referencia de funciones.
Adjuntarla al proceso¶
El desencadenador se ejecuta en el momento que elijas:
- antes o después de un paso (formulario, documento de entrada o de salida);
- antes de que el caso se asigne al usuario siguiente;
- antes o después de que el caso se derive.
Con una condición, se ejecuta solo si la condición es verdadera: por ejemplo, enviar el
mensaje solo cuando @@repFinalDec es 0, para que el solicitante reciba un correo y no uno
por paso.
Antes de confiar en ella¶
- Envíala a ti mismo con un caso real: los marcadores y los bloques de grilla se ven distinto con datos reales.
- Mantén la plantilla pequeña. El HTML largo con CSS externo suele ser eliminado por los clientes de correo.
- El mensaje queda en el historial de mensajes; el caso conserva la copia, así que "¿salió el correo?" tiene respuesta.
Relacionado¶
- Notificaciones de tarea — el correo integrado, sin desencadenador.
- Recetario de desencadenadores — una grilla por correo, paso a paso.
- Plantillas y archivos públicos — dónde viven los archivos.
- Funciones de Lurana —
PMFSendMessage,PMFSendMessageToGroup.