Tabla de Contenidos

Fábrica - Servicios Web - Integraciones - AdaEmailService

Este servicio permite el envío de correos electrónicos. Actualmente soporta los siguientes servidores de correo:

*Requiere generación de clave de aplicaciones

Nueva Implementación

Se adiciona soporte API MailerSend para envios masivos por medio de tokens de autorización. Favor ver Versión 2.0.0 para más información. A partir de la fecha 05/06/2023 la versión 1.0.0 queda obsoleta y no debe ser utilizada para procesos de producción1).

Descripción del Servicio

NombreDescripciónTipo ServicioTecnologíaLenguajeTipo DesarrolloVersión DesarrolloArchivo de Configuración
AdaEmailServiePermite el envío de correos electrónicos.RestSpringBoot 2.7.6Java 11.0.315Nuevo11.6.0.1application.properties
Tipo EmpaquetadoGestor de DependenciasServidor de DespliegueIDE ProyectoTipo RepositorioUrl DesarrolloUrl CalidadUrl Producción
warMaven 3.8.1WildFly 20SpringTools 4.16.1SubversiónSVN branchesSVN trunkSVN tags
Dependencias
groupIdartifactIdversionscopeoptionalDescripción
org.springframework.bootspring-boot-starter-data-restN/AN/AN/AAPI de mapeo de rutas
org.springframework.bootspring-boot-starter-webN/AN/AN/ACore Servicios Web
org.springframework.bootspring-boot-devtoolsN/AruntimetrueRecarga de aplicaciones
org.projectlomboklombokN/AN/AtrueAPI de anotaciones para reducción de código
org.springframework.bootspring-boot-starter-testN/AtestN/ACore Springboot
org.postgresqlwebjars-locator-jboss-vfs0.1.0N/AN/APlugins para despliegue en Wildfly
org.springframework.bootspring-boot-starter-tomcatN/AprovidedN/AServidor Embebido Tomcat
org.apache.maven.pluginsmaven-compiler-plugin3.8.1N/AN/AGestor de dependencias
org.springdocspringdoc-openapi-ui1.5.12N/AN/APlugins para generar documentación Swagger
org.springframework.bootspring-boot-starterN/AN/AN/ACore Springboot
com.sun.mailjavax.mail1.6.2N/AN/AEnvío de correos
org.freemarkerfreemarkerN/AN/AN/APlantillas de Texto
com.mailersendjava-sdk1.0.0N/AN/AEnvío de correos por medio del API MailerSend
Documentación Operaciones
TipoDocumentaciónVisor
SwaggerVer Documento Jsonhttps://editor.swagger.io/
JavadocDirectorio JavadocNavegador Web
Ambientes de Despliegue
TipoUrlObservaciones
Desarrollo:http://localhost:8080Ambiente de desarrollo
Calidad:http://srv-appeon-000-w23.adacsc.co/AdaEmailServiceAmbiente de validación
Producción:https://factory-ws-utilities17.adacsc.co/AdaEmailServiceAmbiente de producción

Información Adicional

Despliegue

Requisitos Técnicos Servidor

Notas

Ejemplos de envio de correos

Envio servidor Ionos

Esta versión esta Obsoleta. Por favor utilice la Versión 2.0.0

//URL: email/v1/send
 
{
  "smtpHost": "smtp.ionos.com",
  "smtpPort": 587,
  "smtpAuth": "true",
  "smtpMailUser": "email.test@ada.co",
  "smtpMailPassword": "password",
  "smtpStartTlsEnabled": false,
  "smtpSessionDebug": true,
  "subject": "Título de Prueba",
  "content": "Contenido de prueba",
  "html": false,  
  "toEmail": [
    {
      "address": "notififacionTo.test@ada.co",
      "persona": "Notificación To"
    }
  ],
  "ccEmail": [
    {
      "address": "notififacionCc.test@ada.co",
      "persona": "Notificación Cc"
    }
  ],
  "bccEmail": [
    {
      "address": "notififacionBcc.test@ada.co",
      "persona": "Notificación Bcc"
    }
  ]
}

Envio servidor Outlook

Esta versión esta Obsoleta. Por favor utilice la Versión 2.0.0

//URL: email/v1/send
{
  "smtpHost": "smtp.outlook.com",
  "smtpPort": 587,
  "smtpAuth": "true",
  "smtpMailUser": "correo",
  "smtpMailPassword": "password",
  "smtpStartTlsEnabled": true,
  "smtpSessionDebug": true,
  "subject": "Prueba",
  "content": "Ejemplo",
  "html": false,  
  "toEmail": [
    {
      "address": "correo",
      "persona": "persona"
    }
  ],
  "ccEmail": [
    {
      "address": "correo copia",
      "persona": "Persona Copia"
    }
  ],
  "bccEmail": [
    {
      "address": "Correo copia oculta",
      "persona": "Persona copia oculta"
    }
  ]
}

Envio servidor Gmail

Esta versión esta Obsoleta. Por favor utilice la Versión 2.0.0

//URL: email/v1/send
{
  "smtpHost": "smtp.gmail.com",
  "smtpPort": 587,
  "smtpAuth": "true",
  "smtpMailUser": "correo",
  "smtpMailPassword": "clave aplicacion",
  "smtpStartTlsEnabled": true,
  "smtpSessionDebug": true,
  "subject": "Prueba",
  "content": "Ejemplo",
  "html": false,  
  "toEmail": [
    {
      "address": "Correo",
      "persona": "Persona"
    }
  ],
  "ccEmail": [
    {
      "address": "Correo copia",
      "persona": "Persona copia"
    }
  ],
  "bccEmail": [
    {
      "address": "Correo copia oculta",
      "persona": "Persona copia oculta"
    }
  ]
}

Liberación Versión 2.0.0 Correos Masivos

Se libera versión con soporte de envios masivos sin necesidad de servidor SMTP utilizando el API de envios masivos MailerSend.

Documentación Técnica Javadoc

Se libera la documentación técnica javadoc la cual puede ser consultada desde la carpeta de documentación del proyecto en la ruta del SVN

Nota

Debe descargar el proyecto para visualizar la documentación.

Documentación Técnica OpenAPI

Se libera documentación OpenAPI V3 la cual se comparte a continuación y puede ser visualizada en el visor swagger

Nota

Copie el siguiente texto en formato JSON y peguelo en el panel izquierdo del visor visor swagger

{
    "openapi": "3.0.1",
    "info": {
        "title": "OpenAPI definition",
        "version": "v0"
    },
    "servers": [
        {
            "url": "http://factory-ws-utilities17.adacsc.co/AdaEmailService",
            "description": "Generated server url"
        }
    ],
    "tags": [
        {
            "name": "EmailController",
            "description": "Controlador que gestiona los envíos de correos electrónicos en las aplicaciones."
        }
    ],
    "paths": {
        "/email/v2/send": {
            "post": {
                "tags": [
                    "EmailController"
                ],
                "summary": "send",
                "description": "Envía correos electrónicos utilizando el API de envio masivo MailerSend.",
                "operationId": "send",
                "parameters": [
                    {
                        "name": "token",
                        "in": "header",
                        "description": "Token API utilizado para realiza el envío. Si no se especifica se utiliza uno genérico.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "example": "eyFDSFDSF4%$#%$#%VFDvcxvkxkvljxkljelkrjklcjvklcxjvklxjv"
                    },
                    {
                        "name": "emailDto",
                        "in": "query",
                        "description": "Objeto con la configuración del envio y contenido del correo electrónico que será enviado",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/EmailDto"
                        }
                    }
                ],
                "responses": {
                    "500": {
                        "description": "Se han generado inconsistencias al crear el registro.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    },
                    "202": {
                        "description": "Correo electrónico enviado correctamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "No se puede enviar el correo electrónico.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/email/v1/send": {
            "post": {
                "tags": [
                    "EmailController"
                ],
                "summary": "send",
                "description": "Envía correos electrónicos.",
                "operationId": "send_1",
                "parameters": [
                    {
                        "name": "emailConfigDto",
                        "in": "query",
                        "description": "Objeto con la configuración del envio y contenido del correo electrónico que será enviado",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/EmailConfigDto"
                        },
                        "example": {
                            "smtpHost": "smtp.ionos.com",
                            "smtpPort": 587,
                            "smtpAuth": "true",
                            "smtpMailUser": "email.test@ada.co",
                            "smtpMailPassword": "password",
                            "smtpStartTlsEnabled": false,
                            "smtpSessionDebug": true,
                            "subject": "Título de Prueba",
                            "content": "Contenido de prueba",
                            "html": false,
                            "toEmail": [
                                {
                                    "address": "notififacionTo.test@ada.co",
                                    "persona": "Notificación To"
                                }
                            ],
                            "ccEmail": [
                                {
                                    "address": "notififacionCc.test@ada.co",
                                    "persona": "Notificación Cc"
                                }
                            ],
                            "bccEmail": [
                                {
                                    "address": "notififacionBcc.test@ada.co",
                                    "persona": "Notificación Bcc"
                                }
                            ]
                        }
                    }
                ],
                "responses": {
                    "500": {
                        "description": "Se han generado inconsistencias al crear el registro.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    },
                    "202": {
                        "description": "Correo electrónico enviado correctamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "No se puede enviar el correo electrónico.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GenericResponseDto"
                                }
                            }
                        }
                    }
                },
                "deprecated": true
            }
        },
        "/email/": {
            "get": {
                "tags": [
                    "EmailController"
                ],
                "summary": "index",
                "description": "Método de validación de estado del microservicio",
                "operationId": "index",
                "responses": {
                    "200": {
                        "description": "Microsericio en linea",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/EmailController"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "AddressConfigDto": {
                "type": "object",
                "properties": {
                    "address": {
                        "type": "string"
                    },
                    "persona": {
                        "type": "string"
                    }
                },
                "description": "Clase Dto que contiene la configuración de la dirección de correo electronico."
            },
            "AttachmentConfigDto": {
                "type": "object",
                "properties": {
                    "fileName": {
                        "type": "string"
                    },
                    "fileContentStringBase64": {
                        "type": "string"
                    },
                    "typeContent": {
                        "type": "string"
                    }
                },
                "description": "Clase Dto que contiene la configuración del archivo que se adjuntará al correo electrónico."
            },
            "EmailDto": {
                "type": "object",
                "properties": {
                    "from": {
                        "$ref": "#/components/schemas/AddressConfigDto"
                    },
                    "subject": {
                        "type": "string"
                    },
                    "content": {
                        "type": "string"
                    },
                    "html": {
                        "type": "boolean"
                    },
                    "attachmentBase64": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AttachmentConfigDto"
                        }
                    },
                    "toEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    },
                    "ccEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    },
                    "bccEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    }
                },
                "description": "Clase Dto que contiene la configuración e información del correo electrónico."
            },
            "GenericResponseDto": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "integer",
                        "format": "int64"
                    },
                    "message": {
                        "type": "string"
                    },
                    "content": {
                        "type": "object"
                    }
                },
                "description": "Dto generico utilizado para respuestas en servicios."
            },
            "EmailConfigDto": {
                "type": "object",
                "properties": {
                    "smtpHost": {
                        "type": "string"
                    },
                    "smtpPort": {
                        "type": "string"
                    },
                    "smtpAuth": {
                        "type": "string"
                    },
                    "smtpMailUser": {
                        "type": "string"
                    },
                    "smtpMailPassword": {
                        "type": "string"
                    },
                    "smtpStartTlsEnabled": {
                        "type": "string"
                    },
                    "smtpSslTrust": {
                        "type": "string"
                    },
                    "smtpSessionDebug": {
                        "type": "boolean"
                    },
                    "subject": {
                        "type": "string"
                    },
                    "content": {
                        "type": "string"
                    },
                    "html": {
                        "type": "boolean"
                    },
                    "attachmentBase64": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AttachmentConfigDto"
                        }
                    },
                    "toEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    },
                    "ccEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    },
                    "bccEmail": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AddressConfigDto"
                        }
                    }
                },
                "description": "Clase Dto que contiene las configuraciones de autenticación y envío del correo electrónico."
            },
            "EmailController": {
                "type": "object"
            }
        }
    }
}

Ejemplo de Consumo

El siguiente es un ejemplo de consumo del nuevo servicio. Los parametros de consumo se describen como se configurarían en un cliente Rest como Postman.

//Http: POST
//URL: https://factory-ws-utilities17.adacsc.co/AdaEmailService/email/v2/send
//Header: token = Token API utilizado para realiza el envío. Si no se especifica se utiliza uno genérico.
//Parametro en el Body: Ver el json a continuación
 
{
  "from": {
    "address": "dirección de correo de origen",
    "persona": "Nombre de la cuenta de origen"
  },
  "subject": "Asunto del correo",
  "content": "Contenido del correo, puede ser un bloque html o texto plano",
  "html": true,
  "attachmentBase64": [
    {
      "fileName": "Nombre del archivo con extensión",
      "fileContentStringBase64": "Contenido del archivo en Base64",
      "typeContent": "Mime type del archivo Ej: Para un PDF sería application/pdf"
    }
  ],
  "toEmail": [
    {
      "address": "Correo de destino",
      "persona": "Nombre asociado al correo de destino."
    }
  ],
  "ccEmail": [
    {
      "address": "Correo de copia",
      "persona": "Nombre asociado al correo de copia."
    }
  ],
  "bccEmail": [
    {
      "address": "Correo de copia oculta",
      "persona": "Nombre asociado al correo de copoa oculta."
    }
  ]
}

Ejemplo de Respuesta exitosa de Consumo

{
    "code": 1,
    "message": "Correo electronico enviado correctamente: ID 647a19cc646885576c0b2524",
    "content": null
}

Consideraciones

A partir de al fecha el componente está publicado y disponible para envios de correos. Favor tener presente las siguientes consideraciones para el correcto uso del componente.

←Volver atrás

1)
Se prevee eliminar el soporte de esa versión en liberaciones posteriores