本章节我们在项目上集成mail,实现发送邮件功能

我的常用邮箱是126邮箱, 如果需要在项目上使用这个邮箱发送邮件,需要开启SMTP服务。

1 开启SMTP服务

在设置中找到POP3/SMTP/IMAP,页面如下,开启IMAP/SMTP服务,如果已开启,增加一组授权密码,复制下来,因为此密码只显示一次。

2 安装依赖文件

yarn add @nestjs-modules/mailer nodemailer#ornpm install --save @nestjs-modules/mailer nodemailer

3 配置

在app.module中配置

// 邮件import { MailerModule } from '@nestjs-modules/mailer';import { PugAdapter } from '@nestjs-modules/mailer/dist/adapters/pug.adapter';@Module({  imports: [   MailerModule.forRoot({      transport: {        host: 'smtp.126.com',        port: 25,        ignoreTLS: true,        secure: false,        auth: {          user: '你的邮箱地址',          pass: '刚才复制的密码',        },      },      defaults: {        from: '"名字" <你的邮箱地址>',      },      preview: false,      template: {        dir: process.cwd() + '/template/',        adapter: new PugAdapter(), // or new PugAdapter() or new EjsAdapter()        options: {          strict: true,        },      },    })  ],  controllers: [AppController],  providers: [AppService],})

我只演示此功能需要用到的,

4 编写发送服务

新建mail文件夹,文件夹下新建mail.service.ts文件,内容如下

import { Injectable } from '@nestjs/common';import { MailerService } from '@nestjs-modules/mailer';@Injectable()export class ExampleService {  constructor(private readonly mailerService: MailerService) {}  /**   * 邮件发送   */  public example(subject: string, text: string, html: string): void {    this.mailerService      .sendMail({        to: '目标邮箱',        from: '发送邮箱',        subject: subject,        text: text,        html: html,      })      .then(() => {})      .catch(() => {});  }}

5 发送邮件

需要在用到的地方增加

// 导入邮件import { ExampleService } from '../mail/mail.service';@Injectable()export class UserService {  constructor(    private readonly exampleService: ExampleService,  ) {}}

调用

this.exampleService.example('主题', '主题', '内容');
©著作权归作者所有:来自51CTO博客作者mb5fd86dae5fbf6的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 灭霸模式开启:百度贴吧2017年前的内容全部消失,可以跟黑历史说再见
  2. 告别2020,迎接2021!
  3. Linux下开启缓存服务NSCD
  4. Android(安卓)蓝牙开启关闭
  5. android 简单实现电话的监听
  6. 禁用GPU硬件加速方法
  7. Acitivity加载模式说起
  8. Android实现电子邮箱客户端
  9. 【Android】代码开启/关闭GPS

随机推荐

  1. 学习Go 语言操作 MySQL 之 预处理
  2. golang如何实现自举?
  3. Go Wails 框架构建桌面应用示例
  4. golang如何退出进程?
  5. golang与python有哪些不同?
  6. golang无法导包怎么办?
  7. golang无法解析json怎么办?
  8. go语言值传递介绍
  9. golang如何实现协程?
  10. Golang 能做前端吗?