如何用4078代码解决Sendgrid nodemailer错误



我编写电子邮件类:

const pug = require('pug')
const nodemailer = require('nodemailer');
const htmlToText = require('html-to-text');
module.exports = class Email{
constructor(user, url) {
this.to = user.email;
this.firstName = user.name.split(' ')[0];
this.url = url;
this.from = `Feruz Atamuradow <${process.env.EMAIL_FROM}>`;
}
newTransport() {
if (process.env.NODE_ENV === 'production') {
return nodemailer.createTransport({
service: 'SendGrid',
auth: {
user: process.env.SENDGRID_USERNAME,
pass: process.env.SENDGRID_PASSWORD
}
});
}
return nodemailer.createTransport({
host: process.env.EMAIL_HOST,
port: process.env.EMAIL_PORT,
auth: {
user: process.env.EMAIL_USERNAME,
pass: process.env.EMAIL_PASSWORD
},
tls:{
rejectUnauthorized:false
} // and  try this without 
});
}
async send(template, subject) {
const html = pug.renderFile(`${__dirname}/../views/email/${template}.pug`, {
firstName: this.firstName,
url: this.url,
subject
});
const mailOptions = {
from: this.from,
to: this.to,
subject,
html,
text: htmlToText.fromString(html)
}

await this.newTransport().sendMail(mailOptions)
}
async sendWelcome() {
await this.send('welcome', 'Welcome to the Natours Family!');
}
async sendPasswordReset() {
await this.send('passwordReset', 'Your password reset token (valid for only 10 minutes)')
}
}

但我只得到了这个错误,我不理解这个错误。什么意思以及如何解决这个

错误:错误:connect ECONNREFUSED 3.209.246.195:225在TCPConnectWrap.afterConnect[完成](net.js:1146:16({错误号:-4078,代码:"ESOCKET",syscall:"connect",地址:'3.209.246.195',端口:2525,命令:'CONN'}

我得到了这个"生产"错误:

错误:错误:消息失败:550发件人地址与已验证的发件人身份。在出现此错误之前,无法发送邮件解决。参观https://sendgrid.com/docs/for-developers/sending-email/sender-identity/查看发件人身份要求在SMTPConnection_formatError(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp connection\index.js:784:19(在SMTPConnection_actionSMTPStream(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp connection\index.js:1674:34(在SMTPConnection。(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp connection\index.js:1152:22(在SMTPConnection_processResponse(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp connection\index.js:947:20(在SMTPConnection_onData(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp connection\index.js:749:14(位于TLSSocket.SMTPConnection.onSocketData(C:\Users\feruz\Desktop\complete\4-natours\node_modules\nodemailer\lib\smtp-connection\index.js:189:44(在TLSSocket.emit(events.js:315:20(在addChunk(_stream_readable.js:309:12(在readableAddChunk(_stream_readable.js:284:9(在TLSSocket.Readable.push(_stream_Readable.js:22:10({code:"EMESSAGE",响应:"550发件人地址与已验证的发件人身份。在出现此错误之前,无法发送邮件解决。参观https://sendgrid.com/docs/for-developers/sending-email/sender-identity/要查看"发件人身份要求",响应代码:550,
命令:"DATA"}

IP,您使用的端口不正确,或者服务未在3.209.246.195的2525端口运行。你应该再检查一下。

检查连接:ping 3.209.246.195

检查服务(端口(:telnet 3.209.246.195 2525

最新更新