1、安装依赖
npm install nodemailer @nestjs/mailer
2、创建邮件服务
nest generate service mail
3、以QQ邮箱为例
//mail.service.ts
import { Injectable } from '@nestjs/common';
import * as nodemailer from 'nodemailer';
@Injectable()
export class MailService {
private transporter;
constructor() {
this.transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
port: 587,
secure: false,
auth: {
user: 'send@mail.com', //设置发送邮箱
pass: 'xxxxxxxxxxxx', //设置邮箱授权码,详见第4点
},
});
}
//发送邮件
async sendMail(to: string, subject: string, text: string) {
const mailOptions = {
from: '"你的名字" <你的邮箱>',
to, //目标
subject, //邮件标题
text,//邮件内容
}
return this.transporter.sendMail(mailOptions)
}
}
4、登录QQ邮箱-设置-账号-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开通该服务可以获得授权码
5、controller或service调用示例
//your.module.ts
import { MailService } from '../mail/mail.service';
@Module({
providers: [
MailService,
]
})
//your.service.ts
import { MailService } from '../mail/mail.service';
export class CsgoService {
constructor(
private readonly mailService: MailService,
) {
//调用示例
this.mailService.sendMail("目标邮箱","邮件标题","邮件内容");
}
}