Envío de emails
Define metadatos en un documento dinámico para fijar asunto, cuerpo, destinatario y adjunto al compartirlo por email.
Un documento dinámico se manda por correo desde su propia vista previa. Los metadatos que declaras con F.MetaData_Set llegan ya rellenos a ese correo: remitente, destinatario, asunto, cuerpo y nombre del archivo adjunto.
Todos estos metadatos son opcionales: lo que no fijes lo rellena a mano quien envía, en la vista previa. email_body incluido — sin él, el correo se envía igual, con el cuerpo en blanco para escribirlo antes de mandarlo.
F.MetaData_Set('email_subject','Purchase Order Confirmation')
F.MetaData_Set('email_body','Dear customer, please find attached your invoice.')
F.MetaData_Set('email_to','[email protected]')
F.MetaData_Set('email_to_name','John Doe')
F.MetaData_Set('email_attachment_name','invoice_12345.pdf')
F.MetaData_Set('email_from','[email protected]')
F.MetaData_Set('email_from_name','Mi Empresa')Las dos formas de enviar
La barra del documento tiene dos botones, y no mandan lo mismo:
| Botón | Cuerpo del correo | Adjunto |
|---|---|---|
| Enviar por email | El documento renderizado | Ninguno |
| Adjuntar y enviar por email | Lo que digas en email_body | El documento en PDF |
email_body solo interviene en Adjuntar y enviar por email. En el otro botón el documento es el correo, así que ese metadato se ignora.
El documento se convierte en PDF y email_body se usa como cuerpo del mensaje.
El email
Hola Ana,
te envío la factura para que la revises. Un saludo.
Este texto sale de email_body. Sin él, llega en blanco.
El adjunto
El documento, convertido a PDF. Su nombre lo fija email_attachment_name.
Metadatos disponibles
| Metadato | Qué hace |
|---|---|
email_subject | Asunto del correo. |
email_body | Cuerpo del correo al adjuntar. Admite HTML, o el ID de otro documento dinámico (ver más abajo). |
email_to | Dirección del destinatario. |
email_to_name | Nombre del destinatario. Sin él, el correo no se puede enviar. |
email_from | Dirección del remitente. Exige dominio verificado. |
email_from_name | Nombre visible del remitente. |
email_attachment_name | Nombre con el que viaja el PDF adjunto. Sustituye al nombre del documento. |
El cuerpo puede ser otra plantilla
email_body acepta el ID de otro documento dinámico. Cuando lo detecta, Dinaup ejecuta esa plantilla con las mismas variables del documento original y usa su HTML como cuerpo del correo.
F.MetaData_Set('email_body','a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d')Con eso separas las dos piezas: la plantilla de impresión viaja como PDF adjunto y la plantilla del correo se diseña aparte, con su propio HTML y los mismos datos del registro.
Remitente y dominio verificado
Por defecto el correo sale de Dinaup <[email protected]>. Con email_from sale desde tu dirección, y el remitente recibe además una copia oculta del envío.
email_from exige que su dominio esté verificado en tu licencia. Si tienes dominios verificados y la dirección no pertenece a ninguno, el envío se rechaza con el error «El dominio no está verificado». Si tu licencia no tiene ninguno, email_from se ignora y el correo sale desde [email protected].
Vista previa antes de enviar
Los metadatos rellenan el correo, no lo mandan. Dinaup abre una vista previa con el remitente, el destinatario, el asunto y el cuerpo ya puestos, y desde ahí decides. El destinatario, su nombre y el asunto se pueden corregir a mano; al adjuntar, el cuerpo también se edita.
El botón Enviar correo sigue bloqueado mientras falte la dirección del destinatario, su nombre o el asunto. De ahí que email_to_name importe tanto como email_to: sin nombre, quien envía tiene que escribirlo cada vez.
Alias antiguos
Los documentos escritos hace tiempo usan otras claves, que se siguen leyendo:
| Clave actual | Alias que se mantienen |
|---|---|
email_subject | email_asunto |
email_body | email_cuerpo |
email_to | email_para, email_to_1, email_para_1, email_destino1 |
email_to_name | email_para_nombre, email_to_name_1, email_para_nombre_1 |
En documentos nuevos escribe la clave actual. Los alias no se reconocen en todos los puntos de lectura: email_cuerpo funciona al ejecutar el documento, pero el listado de documentos del SDK .NET solo lee email_body.
Ejemplos
F.MetaData_Set('email_subject',F.Concat('Factura ',D.EmpresaActual.TextoPrincipal,' nº',v.Factura.NumeroDeFacturaCompleto,' - ',v.Factura.ReferenciaCliente.NombrePersonalRazonSocial))
F.MetaData_Set('email_body','Hola, <br>Te envío la factura para que la revises.<br>Si hay algo que ajustar o cualquier duda, cuéntamelo sin problema.<br>¡Quedo atento para avanzar cuando tú quieras!<br>Un saludo.')
F.MetaData_Set('email_to',v.Factura.ReferenciaCliente.IdentificadorAcceso)
F.MetaData_Set('email_to_name',v.Factura.ReferenciaCliente.NombrePersonalRazonSocial)
F.MetaData_Set('email_attachment_name',F.Concat('Factura ',D.EmpresaActual.TextoPrincipal,' n ',v.Factura.NumeroDeFacturaCompleto,' - ',v.Factura.ReferenciaCliente.NombrePersonalRazonSocial,'.pdf'))F.MetaData_Set('email_subject',F.Concat('Pedido ',D.EmpresaActual.TextoPrincipal,' nº',v.Pedido.NumeroDePedido,' - ',v.Pedido.NombreDeCliente))
F.MetaData_Set('email_body','Hola, <br>Te envío el pedido para que lo revises.<br>Si hay algo que ajustar o cualquier duda, cuéntamelo sin problema.<br>¡Quedo atento para avanzar cuando tú quieras!<br>Un saludo.')
F.MetaData_Set('email_to',v.Pedido.ReferenciaCliente.IdentificadorAcceso)
F.MetaData_Set('email_to_name',v.Pedido.ReferenciaCliente.NombrePersonalRazonSocial)
F.MetaData_Set('email_attachment_name',F.Concat('Pedido ',D.EmpresaActual.TextoPrincipal,' n ',v.Pedido.NumeroDePedido,' - ',v.Pedido.NombreDeCliente,'.pdf'))→ Crear documento dinámico → Mostrar e imprimir → DinaScript
Mostrar e imprimir el documento
Qué hacer con el HTML que devuelve un documento dinámico: incrustarlo en tu web dentro de un iframe o convertirlo en PDF con un navegador headless, sin que se queden las variables sin sustituir.
Ejemplos
Plantillas reales de documentos dinámicos con su DinaScript completo, listas para copiar y adaptar a tu negocio: factura para imprimir y libro registro.