TypeError: Cannot read properties of undefined (reading 'sendMail') Express TS
import * as nodemailer from 'nodemailer'
export class MailService {
private static transporter: nodemailer.Transporter;
private transporter: nodemailer.Transporter;
constructor(){
this.transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth:{
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASSWORD
}
})
}
public static async sendActivationMail(to:any, link:any){
await this.transporter.sendMail({
from: process.env.SMTP_USER,
to,
subject: 'Активация аккаунта на ' + process.env.API_URL,
text: '',
html:
`<div>
<h1>Для активации перейдите по ссылке </h1>
<a href="${link}">${link}</a>
</div>
`
})
}
async sendActivationPasswordMail(to:string, link:string){
await this.transporter.sendMail({
from: process.env.SMTP_USER,
to,
subject: 'Смена пароля на ' + process.env.API_URL,
text: '',
html:
`<div>
<h1>Для смены перейдите по ссылке </h1>
<a href="${link}">${link}</a>
</div>
`
})
}
async sendActivationWelcomeLink(to:string, link:string, title:string){
await this.transporter.sendMail({
from: process.env.SMTP_USER,
to,
subject: `Приглашение на курс ${title} на ${process.env.API_URL}`,
text: '',
html:
`<div>
<h1>Чтобы вступить на курс перейдите по ссылке: </h1>
<a href="${link}">${link}</a>
</div>
`
})
}
}
Источник: Stack Overflow на русском