Skip to main content

Servicio de Correo Electrónico

Este archivo define un servicio de envío de correos electrónicos para la aplicación. Utiliza la biblioteca nodemailer para enviar correos SMTP a través de Gmail. Está enfocado principalmente en notificaciones de bienvenida y restablecimiento de contraseña.


🔍 Ubicación

src/services/email.service.ts


📦 Dependencias

import nodemailer from 'nodemailer';
import dotenv from 'dotenv';
  • nodemailer: Cliente SMTP para envío de correos.
  • dotenv: Para cargar variables de entorno (EMAIL_USER, EMAIL_PASS) desde un archivo .env.

⚙️ Configuración del Transportador

const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});

Se crea un transportador con servicio de Gmail. Las credenciales de autenticación se leen desde variables de entorno, lo que protege la seguridad de los datos sensibles.


✉️ Funciones Exportadas


🔹 sendTeamWelcomeEmail(to: string, tempPassword: string, companyName: string): Promise<void>

Descripción: Envía un correo de bienvenida a un nuevo miembro del equipo cuando una empresa crea su cuenta.

Parámetros:

NombreTipoDescripción
tostringCorreo electrónico del destinatario.
tempPasswordstringContraseña temporal generada para el usuario.
companyNamestringNombre de la empresa que creó la cuenta.

Contenido del correo:

  • Mensaje de bienvenida personalizado.
  • Información de acceso (correo y contraseña temporal).
  • Botón de acceso (estático por ahora).

Asunto del correo:

¡Te han creado una cuenta en ProductTrack!

🔹 sendPasswordResetEmail(to: string, token: string): Promise<void>

Descripción: Envía un correo de restablecimiento de contraseña con un token de verificación.

Parámetros:

NombreTipoDescripción
tostringCorreo electrónico del destinatario.
tokenstringCódigo único para restablecer contraseña.

Contenido del correo:

  • Mensaje explicando la solicitud de restablecimiento.
  • Token para ingresar en la aplicación.
  • Duración de validez: 15 minutos.
  • Notas de seguridad (mensaje automatizado, no responder).

Asunto del correo:

Restablecimiento de contraseña - ProductTrack

🔐 Variables de entorno necesarias

Asegúrate de tener configuradas las siguientes variables en tu archivo .env:

EMAIL_USER=tu_correo@gmail.com
EMAIL_PASS=tu_contraseña_de_aplicacion

⚠️ Se recomienda utilizar una contraseña de aplicación generada desde tu cuenta de Google en lugar de la contraseña personal.


✅ Resumen

FunciónPropósito
sendTeamWelcomeEmailEnviar bienvenida con datos de acceso.
sendPasswordResetEmailEnviar código de recuperación de contraseña.

📝 Notas adicionales

  • El HTML de los correos está embebido directamente y estilizado en línea.
  • Se recomienda en el futuro usar plantillas externas para mayor mantenimiento.
  • El enlace de login aún es estático (https://producttrack.com/login), pendiente de implementación.