¡Esta es una revisión vieja del documento!
Este servicio permite el envío de correos electrónicos. Actualmente soporta los siguientes servidores de correo:
Se adiciona soporte API MailerSend para envios masivos por medio de tokens de autorización.
*Requiere generación de clave de aplicaciones
Nombre | Descripción | Tipo Servicio | Tecnología | Lenguaje | Tipo Desarrollo | Versión Desarrollo | Archivo de Configuración |
---|---|---|---|---|---|---|---|
AdaEmailServie | Permite el envío de correos electrónicos. | Rest | SpringBoot 2.7.6 | Java 11.0.315 | Nuevo | 11.6.0.1 | application.properties |
Tipo Empaquetado | Gestor de Dependencias | Servidor de Despliegue | IDE Proyecto | Tipo Repositorio | Url Desarrollo | Url Calidad | Url Producción |
war | Maven 3.8.1 | WildFly 20 | SpringTools 4.6 | Subversión | SVN branches | SVN trunk | SVN tags |
Dependencias | |||||||
groupId | artifactId | version | scope | optional | Descripción | ||
org.springframework.boot | spring-boot-starter-data-rest | N/A | N/A | N/A | API de mapeo de rutas | ||
org.springframework.boot | spring-boot-starter-web | N/A | N/A | N/A | Core Servicios Web | ||
org.springframework.boot | spring-boot-devtools | N/A | runtime | true | Recarga de aplicaciones | ||
org.projectlombok | lombok | N/A | N/A | true | API de anotaciones para reducción de código | ||
org.springframework.cloud | spring-cloud-sleuth-zipkin | N/A | N/A | true | API de gestión de logs centralizados | ||
org.springframework.boot | spring-boot-starter-test | N/A | test | N/A | Core Springboot | ||
org.postgresql | webjars-locator-jboss-vfs | 0.1.0 | N/A | N/A | Plugins para despliegue en Wildfly | ||
org.springframework.boot | spring-boot-starter-tomcat | N/A | provided | N/A | Servidor Embebido Tomcat | ||
org.apache.maven.plugins | maven-compiler-plugin | 3.8.1 | N/A | N/A | Gestor de dependencias | ||
org.springdoc | springdoc-openapi-ui | 1.5.12 | N/A | N/A | Plugins para generar documentación Swagger | ||
org.springframework.boot | spring-boot-starter | N/A | N/A | N/A | Core Springboot | ||
com.sun.mail | javax.mail | 1.6.2 | N/A | N/A | Envío de correos | ||
Documentación Operaciones | |||||||
Tipo | Documentación | Visor | |||||
Swagger | Ver Documento Json | https://editor.swagger.io/ | |||||
Javadoc | Directorio Javadoc | Navegador Web | |||||
Ambientes de Despliegue | |||||||
Tipo | Url | Observaciones | |||||
Desarrollo: | http://localhost:8080 | Ambiente de desarrollo | |||||
Calidad: | http://srv-appeon-000-w23.adacsc.co/AdaEmailService | Ambiente de validación | |||||
Producción: | https://factory-ws-utilities17.adacsc.co/AdaEmailService | Ambiente de producción |
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" } ] }
Esta versión esta Obsoleta. Por favor utilice la versión 2.
//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" } ] }
Esta versión esta Obsoleta. Por favor utilice la versión 2.
//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" } ] }
Se libera versión con soporte de envios masivos sin necesidad de servidor SMTP.
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
Debe descargar el proyecto para visualizar la documentación.
Se libera documentación OpenAPI V3 la cual se comparte a continuación y puede ser visualizada en el visor swagger
openapi: 3.0.1 info: title: OpenAPI definition version: v0 servers: - url: http://localhost:8088 description: Generated server url tags: - name: EmailController description: Controlador que gestiona los envíos de correos electrónicos en las aplicaciones. paths: /email/v2/sendMasive: post: tags: - EmailController summary: sendMasive description: Envía correos electrónicos de forma masiva. operationId: sendMasive 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: '202': description: Correo electrónico enviado correctamente. content: application/json: schema: $ref: '#/components/schemas/GenericResponseDto' '500': description: Se han generado inconsistencias al crear el registro. 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 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: '202': description: Correo electrónico enviado correctamente. content: application/json: schema: $ref: '#/components/schemas/GenericResponseDto' '500': description: Se han generado inconsistencias al crear el registro. 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
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: localhost:8088/email/v2/sendMasive //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." } ] }
{ "code": 1, "message": "Correo electronico enviado correctamente: ID 647a19cc646885576c0b2524", "content": null }