# 邮件发送
发送邮件需要一个邮件服务器,通常来说搭建一个邮件服务器是完全没有必要的,我们可以使用163、谷歌、QQ邮箱等,公司可以使用企业邮箱,这类的服务也比较多,本章我将带大家使用 163邮箱进行发送邮件。
# 邮箱授权
要发送邮件,我们需要有自己的邮箱,还要获取到授权码,那怎么获取到授权码呢? 如下图以 163 为例:

# 安装插件
Nodemailer 是Node.js 应用程序的模块,可以轻松发送电子邮件。该项目始于2010年,当时没有理智的选项来发送电子邮件,如今,它已成为大多数Node.js用户默认使用的解决方案。
$ npm install nodemailer --save
@前端进阶之旅: 代码已经复制到剪贴板
# 配置参数
config/config.default.ts:
config.mail = {
host: 'smtp.163.com', // SMTP服务
port: 465,
auth: {
user: 'xxxxxxxx', // 账号
pass: 'xxxxxxxx', // 授权码
},
};
@前端进阶之旅: 代码已经复制到剪贴板
# 编写逻辑
在完成上述步骤后,接下来我们来编写发送邮件的逻辑。
# 定义接口
首先我们需要定义一个接口,这个接口中包括了我们发送邮件所需的参数以及类型。
interface IMailData {
to: string; // 接收者
subject: string; // 标题
html: string; // 内容
}
@前端进阶之旅: 代码已经复制到剪贴板
# 编写 service
https://github.com/push-over/egg-example/blob/c72d08141f/app/service/Utils.ts
nodemailer 这个插件非常方便,我们只需要提供一些参数就可以完成邮件发送:
import * as nodemailer from 'nodemailer';
export default class Utils extends Service {
public async sendMail(data: IMailData) {
// 所需的参数
const { to, subject, html } = data;
// 我们之前配置的参数
const { host, port, auth } = this.app.config.mail;
// 创建传