
El envío de correo electrónico es una de las funcionalidades básicas de nuestras aplicaciones de gestión. La plataforma de desarrollo Velneo no dispone de forma nativa de funciones para la gestión de correo electrónico y esto nos ha obligado a hacer uso de herramientas externas.
En este artículo os voy a mostrar un ejemplo de uso de una sencilla utilidad externa, muy conocida seguramente por la mayoría, que facilita el envío de correos electrónicos desde nuestra aplicación.
Si se quiere disponer de correo electrónico para uso personal o profesional es necesario contratar el servicio de un Proveedor de Correo Electrónico (siglas ESP en inglés).
Los Proveedores de Correo Electrónico, o de email, son las empresas que ofrecen los medios y recursos necesarios para crear una cuenta de correo (dirección de email), así como enviar y recibir emails.
Algunos de los Proveedores de Correo Electrónico más usados son Gmail, Outlook, ProtonMail, Zoho Mail o iCloud. Normalmente estos ESP limitan el envío de emails a un reducido número de destinatarios y tampoco permiten el envío de emails con demasiada frecuencia.
Con estas restricciones las aplicaciones que funcionan con miles de usuarios a través de Internet necesitan herramientas de correo transaccional, de marketing y envio masivo conectadas a través de APIS multiplataforma.
Existen cientos de herramientas de correo transaccional y envio masivo en el mercado. Algunos ejemplos son SMTP2GO, MailChimp, Brevo, Mailjet y SendGrid, que disponen de completas APIs para el desarrollador y con planes de precios que se adaptan a todas las necesidades.
Como dice el propio diseñador de MailSend, necesitaba enviar un correo de alerta desde un programa en una máquina Windows en red, pero no disponía de un programa simple, así que escribí uno.
MailSend es un sencillo programa de línea de comandos para enviar correo a través del protocolo SMTP. El programa no usa ningún archivo de configuración y es compatible con las plataformas Windows, Linux y MacOS.
Algunas características principales son autenticación ESMTP, transporte IPv6, incrustar imágenes en HTML y enviar correo a una lista de usuarios.
La última versión estable es mailsend 1.19 publicada en mayo de 2016.
Veamos un ejemplo de uso de la utilidad MailSend con algunos servidores SMTP de tres Proveedores de correo.
El formulario proporciona las siguientes funcionalidades:

El cuerpo del mensaje se diseña en formato HTML usando la librería javascript CKEditor 4. Esta librería implementa un editor avanzado usando el Visor HTML como contenedor gráfico.
La comunicación entre el formulario principal y el Editor HTML se realiza a través de una Vista de datos con un subformulario QML.
El contenido del editor se guardará en un archivo con extensión html en la carpeta temporal del sistema. Este archivo será el cuerpo o Body del mensaje e irá insertado usando la opción -disposition inline.
Con MailSend se pueden incrustar imágenes de manera dinámica en el cuerpo del mensaje usando marcadores de imagen. Utiliza el botón Imagen
de la Barra de herramientas para insertar una Imagen con la URL igual a cid:img_incrustada.

La opción -content-id img_incrustada -attach _graficoEmail.png incrustará el archivo del gráfico en la posición del marcador de imagen dentro del cuerpo del mensaje.
El archivo _graficoEmail.png con el gráfico de negocios hay que crearlo antes de enviar el mensaje. Usamos el botón GRAFICO INCRUSTADO que nos abre un formulario QML con la librería QtCharts.

El gráfico QtCharts se construye a partir de las opciones contenidas en un string con formato JSON. Cambiando alguna de las opciones podemos personalizar el aspecto del gráfico y automáticamente se guardará en disco el archivo _graficoEmail.png con la imagen mostrada en pantalla.
Pulsando el botón INSERTAR IMAGEN BASE64 se abre la ventana de selección de un archivo de imagen con formato jpeg o png. El archivo se codificará en Base 64 y el código se insertará en la posición del cursor en el editor del mensaje.
Se insertará el siguiente código HTML: <img alt="Imagen insertada como un string en formato Base 64" src="data:image/png;base64,iVBORw0KGgoAAAANSU .... >

A la derecha del formulario tenemos un Listbox en el que añadimos los adjuntos del mensaje de correo. Con los botones
añadimos o quitamos archivos de la lista.
Se usará la opción -disposition attachment con el path del archivo adjunto.
La pestaña Opciones SMTP nos permite introducir las opciones obligatorias para la conexión autentificada con el servidor SMTP del Proveedor de Correo.
El combo de la parte superior muestra una lista con tres Proveedores de Correo, IONOS, GMAIL y MICROSOFT 365. Cada Proveedor fija las opciones de servidor SMTP, puerto, remite y credenciales de autentificación.
Selecciona en el combo la línea PERSONALIZADO para fijar tus propias opciones SMTP.

Pulsando el botón de Enviar
el formulario construye el comando mailsend con las opciones para el servidor SMTP del Proveedor seleccionado.
En la pestaña Opciones SMTP se mostrará el comando completo con todas las opciones para el envío del mensaje de correo y también muestra el resultado.
Puedes seleccionar el comando y copiarlo en el portapapeles para ejecutarlo desde la ventana de comandos del sistema operativo.
Como puedes comprobar en este ejemplo de uso, extender Velneo con un sistema sencillo de envío de correos electrónicos no plantea problemas. La utilidad MailSend puede ser un complemento perfecto en tu aplicación junto a las herramientas web más avanzadas para el correo transaccional y envío masivo.
Podéis probar el ejemplo a través del la VRL vatps://PRUEBAS:pruebas@c3.velneo.com:10190/0PT_Modulos_iapp
