Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

256
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda