错误:连接ECONNREFUSED 127.0.0.1:587 nodemailer NodeJS



我正在尝试连接nodemailer,以便在注册后向用户发送邮件。所以我在谷歌设置中打开了IMAP,然后我创建了一个应用程序来生成密码,这一切都适用于这个seriv。但是当我尝试连接邮件服务时,我有这个错误

错误:connect ECONNREFUSED 127.0.0.1:587在TCPConnectWrap.afterConnect[完成时](节点:net:1187:16({错误号:-111,代码:"ESOCKET",syscall:"connect",地址:127.0.0.1',端口:587,命令:'CONN'}

邮件服务:

import nodemailer from "nodemailer";
class MailService {
constructor() {
this.transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
secure: false,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASSWORD,
},
});
}
async sendActicvationMail(to, link) {
await this.transporter.sendMail({
from: process.env.SMTP_USER,
to,
subject: "Mail activation " + process.env.API_URl,
text: "",
html: `
<div>
<h1>For activation click on link</h1>
<a href="${link}">Click here !</a>
</div>
`,
});
}
}
export default new MailService();

我可能在哪里犯了错误?非常感谢。

达尼尔

这个代码对我有效;使用应用程序密码登录";https://support.google.com/mail/answer/185833?hl=en-GB,因为nodemailer需要访问连接到gmail。接下来,我将process.env.SMTP_PASSWORD从gmail mail的密码更改为";您设备的应用程序密码"-它看起来像xxxx-xxxx-xxx-xxxx代码。

import nodemailer from "nodemailer";
import dotenv from 'dotenv';
class MailService {
constructor() {
dotenv.config();
this.transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
service: process.env.SMTP_SERVICE,
secure: true,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASSWORD,
},
});
}
async sendActivationMail(to, link) {
await this.transporter.sendMail({
from: process.env.SMTP_USER,
to,
subject: "Activation account" + process.env.API_URL,
text: "",
html: `
<div>
<h1>Activate your account, please</h1>
<a href="${link}">${link} </a>
</div>
`
});
}
};
export default new MailService();

最新更新