Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
Nodemailer no envía correos electrónicos en NestJs

Tengo la siguiente configuración para el paquete nodemailer:

 //App module @Module({ imports: [ MailerModule.forRoot({ transport: { host: 'localhost', port: 3000, secure: false, }, defaults: { from: '"nest-modules" <modules@nestjs.com>', }, template: { dir: __dirname + '/templates', adapter: new HandlebarsAdapter(), options: { strict: true, }, }, }), ... }) export class AppModule {}

Y

 //Email service export class EmailService { constructor(private readonly mailerService: MailerService) {} public example(): void { this.mailerService .sendMail({ to: 'email@gmail.com', // list of receivers from: 'test@nestjs.com', // sender address subject: 'Testing Nest MailerModule ✔', // Subject line text: 'welcome', // plaintext body html: '<b>welcome</b>', // HTML body content }) .then((r) => { console.log(r, 'email is sent'); }) .catch((e) => { console.log(e, 'error sending email'); }); } }

Estoy usando mi entorno local. Tring el código de arriba me sale un error en el bloque catch: Error: Greeting never received . ¿Por qué recibo ese error y cómo enviar el correo electrónico sin ningún problema?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  1. Este código significa
 MailerModule.forRoot({ transport: { host: 'localhost', port: 3000, secure: false, },

nodemailer intenta encontrar el agente de transferencia de correo SMTP (retransmisión) escuchando en localhost:3000. Es poco probable que haya un servidor SMTP en su máquina en el puerto 3000, por lo que lo más probable es que nodemailer no pueda recibir confirmación de nada en su puerto 3000 de que es un servidor SMTP y arroja el error que mencionó.

  1. Intente usar este transporte para nodemailer, puede funcionar sin retransmisión SMTP https://www.npmjs.com/package/nodemailer-direct-transport

El código será algo como esto:

 import {directTransport} from 'nodemailer-direct-transport'; //App module @Module({ imports: [ MailerModule.forRoot({ transport: directTransport({}), defaults: { from: '"nest-modules" <modules@nestjs.com>', }, template: { dir: __dirname + '/templates', adapter: new HandlebarsAdapter(), options: { strict: true, }, }, }), ... }) export class AppModule {}
about 4 years ago · Juan Pablo Isaza Denunciar

0

No estoy seguro si solo desea enviar un correo electrónico usando SMTP local o enviar un correo electrónico en cualquier SMTP disponible

si es lo último, puede usar google SMTP o mailtrap. No es necesario configurar el servidor SMTP. La configuración será

 MailerModule.forRoot({ transport: { host: "smtp.gmail.com", port: "465", secure: true, auth: { user: "your_gmail_email", pass: "your_gmail_app_password" } } }) // or for mailtrap.io const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ host: 'smtp.mailtrap.io', port: 2525, auth: { user: "<user>", pass: "<pass>" } })

En el caso de un servidor SMTP local, puede consultar smtp-server para crear un servidor SMTP o MaiDev lo ayudará a configurar un servidor SMTP localmente. MailDev también está disponible a través de la ventana acoplable que también sería más fácil.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda