问题描述
我正在使用 sendgrid-nodejs。但是我有一个我无法解决的问题。
我正在使用 typescript express 后端。
import * as SendgridMail from '@sendgrid/mail'
import * as consolidate from 'consolidate'
import * as path from 'path'
import { Type } from '../constants/emailTemplate'
import { generateAccessCode,validateEmailSendingCapability } from '../controllers/emailSettings'
SendgridMail.setApiKey(process.env.SENDGRID_API_KEY)
export class EmailBuilder {
private static parseBody(view: string,data: any) {
return new Promise((resolve,reject) => {
const fileName = path.join(__dirname,'/../',view)
consolidate.swig(fileName,data,(err,html) => err ? reject(err) : resolve(html))
})
}
private template: Type
private to: string[]
private from: string
private subject: string
private data: object
constructor(template: Type,to: string[],data: object) {
this.template = template
this.to = to
this.from = template.from
this.subject = template.subject
this.data = data
}
public setFrom(from: string) {
this.from = from
}
public setSubject(subject: string) {
this.subject = subject
}
public send() {
const { to,from,subject,template,data } = this
return generateAccessCode(to)
.then((recipientEmails) => Promise.all(recipientEmails.map((re: any) => {
return EmailBuilder.parseBody(template.view,{ ...data,emailCode: re.shortId,accessCode: re.accessCode })
.then((html: string) => {
SendgridMail.send({ to: re.email,from: { email: from,name: 'aaaaaa' },html })
.then(()=>{})
.catch((err)=>{
console.log(err)
})
}).catch((err)=>{
console.log(err)
})
})
).catch((err)=>{
console.log(err)
})
)
}
}
我使用了 EmailBuilder
类,如下所示。
const eb = new EmailBuilder(NOTIFICATION,to,mailData)
eb.send()
Error: aborted
at connResetException (node:internal/errors:631:14)
at TLSSocket.socketCloseListener (node:_http_client:438:27)
at TLSSocket.emit (node:events:388:22)
at TLSSocket.EventEmitter.emit (node:domain:532:15)
at node:net:666:12
at TCP.done (node:_tls_wrap:573:7)
at TCP.callbackTrampoline (node:internal/async_hooks:131:14) {
code: 'ECONNRESET'
}
我已经多次尝试解决这个问题。但我无法解决这个问题。我不知道这个问题的原因。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)