Nest_email
搭建项目参考
https://github.com/ChaseTop/material/blob/nest_node/README.md
发送邮件
-
# 生成目录
$ nest g resource email
# 安装必要包
$ npm install --save @nestjs-modules/mailer nodemailer -
email.module.ts
import { Module } from '@nestjs/common';
import { EmailService } from './email.service';
import { EmailController } from './email.controller';
import { MailerModule } from '@nestjs-modules/mailer';
import { PugAdapter } from '@nestjs-modules/mailer/dist/adapters/pug.adapter';
@Module({
imports: [
// 导入 MailerModule 并配置邮件发送参数
MailerModule.forRoot({
// 邮件传输配置
transport: {
host: 'smtp.163.com', // SMTP 服务器主机名或 IP 地址
port: 25, // SMTP 服务器端口号
ignoreTLS: true, // 是否忽略 TLS 连接的安全性
secure: false, // 是否使用安全连接,通常设置为 false
auth: {
user: '你的163邮箱', // SMTP 服务器认证用户
pass: '步骤1中你的授权码', // SMTP 服务器认证密码
},
},
preview: false, // 是否开启预览模式,通常设置为 false
template: {
dir: process.cwd() + '/template/', // 邮件模板文件目录路径,需要手动创建,可有可无
adapter: new PugAdapter(), // 使用 Pug 模板引擎适配器
options: {
strict: true, // Pug 模板引擎的严格模式,通常设置为 true
},
},
})
],
controllers: [EmailController], // 注册 EmailController 控制器
providers: [EmailService], // 注册 EmailService 服务提供者
})
export class EmailModule { } -
email.service.ts
import { Injectable } from '@nestjs/common';
import { MailerService } from '@nestjs-modules/mailer';
@Injectable()
export class EmailService {
constructor(private readonly mailerService: MailerService) { }
findAll(subject: string, text: string, html: string) {
this.mailerService
.sendMail({
to: 'zhao.yc@botlet.io',
from: '16632301768@163.com',
subject: subject,
text: text,
html: html,
})
.then(() => {
console.log(123);
})
.catch((err) => {
console.log(err);
});
return `This action returns all email`;
}
} -
email.controller.ts
import { Controller, Get } from '@nestjs/common';
import { EmailService } from './email.service';
@Controller('email')
export class EmailController {
constructor(private readonly emailService: EmailService) { }
@Get()
findAll() {
return this.emailService.findAll('主题', '主题', '内容');
}
} -
控制台输出以下内容代表成功
[Nest] 2220 - 2024/04/09 10:49:30 ERROR [MailerService] Transporter is ready