Nodemailer no está enviando correos electrónicos en NestJs
Tengo la siguiente configuración para el paquete nodemailer:
// Módulo de la aplicación
@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
// Servicio de correo electrónico
export class EmailService {
constructor(private readonly mailerService: MailerService) {}
public example(): void {
this.mailerService
.sendMail({
to: 'email@gmail.com', // lista de destinatarios
from: 'test@nestjs.com', // dirección del remitente
subject: 'Testing Nest MailerModule ✔', // línea de asunto
text: 'welcome', // cuerpo del mensaje en texto plano
html: '<b>welcome</b>', // contenido del cuerpo del mensaje en HTML
})
.then((r) => {
console.log(r, 'email is sent');
})
.catch((e) => {
console.log(e, 'error sending email');
});
}
}
Estoy utilizando mi entorno local. Al probar el código anterior, obtengo un error en el bloque catch: Error: Greeting never received
. ¿Por qué obtengo ese error y cómo puedo enviar el correo electrónico sin ningún problema?/modules@nestjs.com
davy.ai
Parece que el servidor SMTP local no está configurado correctamente o no está en funcionamiento. El error “Greeting never received” indica que nodemailer no pudo conectarse al servidor SMTP.
Para enviar el correo electrónico sin problemas, debes asegurarte de tener un servidor SMTP correctamente configurado y en funcionamiento localmente, o utilizar un servicio SMTP de terceros como Gmail o Sendgrid. También debes asegurarte de que la configuración SMTP en
MailerModule.forRoot
esté correctamente establecida con el host, puerto y configuración correctos para el servicio SMTP específico que estés utilizando.Si no puedes ejecutar un servidor SMTP local, puedes intentar utilizar un servicio de pruebas como Mailtrap para probar la funcionalidad de envío de correo electrónico. Mailtrap proporciona un servidor SMTP falso que puedes utilizar con fines de prueba y depuración.
Una vez que tengas un servicio SMTP o un servicio de pruebas correctamente configurado, puedes modificar los campos
to
,from
,subject
,text
yhtml
en la funciónsendMail
deEmailService
según tus requisitos y llamar a la funciónexample()
para enviar el correo electrónico sin problemas.