Envío de emails
Los metadatos email_* que rellenan la vista previa del correo, cuándo el documento viaja como PDF adjunto y desde qué remitente sale.
El visor de Play envía un documento dinámico por correo con el botón Enviar por email. Los metadatos que el código fija con F.MetaData_Set llegan ya puestos a la vista previa: remitente, destinatario, copias, asunto, cuerpo y nombre del adjunto.
F.MetaData_Set('email_subject', F.Concat('Factura ', v.Factura.NumeroDeFacturaCompleto))
F.MetaData_Set('email_to', v.Factura.ReferenciaCliente.CuentaDeCorreoPrincipal)
F.MetaData_Set('email_to_name', v.Factura.DenominacionRazonSocialCliente)
F.MetaData_Set('email_attachment_name', F.Concat('Factura ', v.Factura.NumeroDeFacturaCompleto, '.pdf'))Todos los metadatos son opcionales. Lo que falte lo escribe a mano quien envía.
Cuerpo o adjunto
Un solo botón. Lo determina email_body:
email_body | Cuerpo del correo | Adjunto |
|---|---|---|
| Sin fijar | El documento renderizado | Ninguno |
| Con texto | Ese texto, en HTML | El documento convertido a PDF |
| Con el ID de otro documento dinámico | El HTML de ese documento, ejecutado con las mismas respuestas | El documento convertido a PDF |
Con email_body, Play convierte el documento a PDF (Cómo convierte Dinaup a PDF) y lo sube a una URL temporal antes de abrir la vista previa.
DemoUp separa las dos piezas: Factura - Moderna se imprime y Factura - Plantilla de Email es el cuerpo del correo. La primera apunta a la segunda por su ID:
F.MetaData_Set('email_body', S.DynamicDocuments.Correos.FacturaPlantilladeEmail.ID)Metadatos
| Clave | Qué rellena |
|---|---|
email_subject | Asunto. |
email_body | Cuerpo al adjuntar: HTML o el ID de otro documento dinámico. |
email_to | Dirección del destinatario. Hasta 100, y cada una recibe su propio correo. |
email_to_name | Nombre del destinatario. Con varias direcciones, va con la primera. |
email_from | Dirección del remitente. Exige dominio verificado. |
email_from_name | Nombre visible del remitente. |
email_cc | Direcciones en copia, CC. |
email_bcc | Direcciones en copia oculta, CCO: quien va en CCO no ve al resto. |
email_replyto | La dirección de Responder a. En el SDK es Email_ReplyTo. |
email_attachment_name | Nombre del PDF adjunto. Sin él se usa el metadato titulo. |
email_to, email_cc, email_bcc y email_replyto admiten varias direcciones separadas por comas, y se pueden fijar varias veces. F.MetaData_Set numera la clave repetida (email_bcc1, email_bcc2) y también vale numerarla a mano (email_bcc_1). Play reúne todas las de la misma clave.
F.MetaData_Set('email_cc', 'contabilidad@ejemplo.com')
F.MetaData_Set('email_bcc', 'archivo@ejemplo.com')
F.MetaData_Set('email_bcc', 'auditoria@ejemplo.com')
F.MetaData_Set('email_replyto', 'pedidos@ejemplo.com')Con varias direcciones en email_to, cada una recibe su propio correo y solo ve la suya en Para. La primera lo recibe con el CC y el CCO; las demás, sin CC.
Remitente
La vista previa elige el remitente en este orden y se queda con el primero utilizable:
email_fromyemail_from_namedel documento.- El remitente predeterminado de la empresa, configurado en Play.
noreply@dinaup.comcon nombre Dinaup.
Una dirección propia solo es utilizable si su dominio está entre los dominios verificados de la licencia. Si no lo está, la vista previa pasa a la siguiente opción de la lista y lo avisa: No se puede enviar desde X porque su dominio todavía no está verificado. Cuando el correo sale desde una dirección propia, el remitente recibe copia oculta. La vista previa lo indica con un aviso de copia.
La vista previa
Los metadatos rellenan el correo; no lo envían. La ventana Vista previa muestra remitente, destinatario, asunto, cuerpo y adjunto, y deja corregir el Email destinatario, el Nombre destinatario, el Asunto y el cuerpo. Los campos CC, Responder a y CCO salen abiertos si la plantilla trae alguno; si no, Añadir CC, CCO o Responder a los abre.
El botón Enviar correo exige dirección y asunto: sin alguno de los dos avisa Completa el email del destinatario y el asunto antes de enviar. El Nombre destinatario es opcional; sin él, el Para lleva solo la dirección. Tampoco envía con una dirección mal escrita en el destinatario, CC, CCO o Responder a, con más de 100 direcciones de destinatario, con más de 48 direcciones en CC ni con más de 500 en CCO.
Con un solo destinatario, fija email_to_name para que el Para lleve su nombre. El saludo del cuerpo lo escribe tu plantilla: email_to_name no lo rellena.
Un correo por destinatario
Con la marca {{email_to}} en el asunto o en el cuerpo, cada dirección de Para, CC y CCO recibe su propio correo, con su dirección en el sitio de la marca.
Para meter la dirección en un enlace, usa {{email_to_urlencode}}. Es la misma dirección, siempre codificada para URL: ana+tienda@ejemplo.com sale como ana%2Btienda%40ejemplo.com.
<a href="https://miweb.com/alta?email={{email_to_urlencode}}">Darme de alta</a>La marca la cambia Play al enviar: en el documento y en la vista previa se ve tal cual. {{email_destinatario}} hace lo mismo.
La vista previa lo avisa: Cada destinatario recibe un correo aparte, también los de CC y CCO. Con muchas direcciones, el envío tarda más.
Ejemplos
F.MetaData_Set('email_subject', F.Concat('Factura ', D.EmpresaActual.TextoPrincipal, ' nº ', v.Factura.NumeroDeFacturaCompleto, ' - ', v.Factura.DenominacionRazonSocialCliente))
F.MetaData_Set('email_body', 'Hola,<br>te envío la factura para que la revises.<br>Un saludo.')
F.MetaData_Set('email_to', v.Factura.ReferenciaCliente.CuentaDeCorreoPrincipal)
F.MetaData_Set('email_to_name', v.Factura.DenominacionRazonSocialCliente)
F.MetaData_Set('email_attachment_name', F.Concat('Factura ', v.Factura.NumeroDeFacturaCompleto, '.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>Un saludo.')
F.MetaData_Set('email_to', v.Pedido.ReferenciaCliente.CuentaDeCorreoPrincipal)
F.MetaData_Set('email_to_name', v.Pedido.NombreDeCliente)
F.MetaData_Set('email_attachment_name', F.Concat('Pedido ', v.Pedido.NumeroDePedido, '.pdf'))Siguiente: Documentos para firmar. Funciones: Documentos y gráficos.