前言

在自己的kb-mall商城项目中,有通过配置google cloud中的gmail api,来发送邮件,配置过程较为繁琐以及复杂,因此,记录下来,以便于查阅和浏览,👇 是已经实现的发送效果图:
使用gmail_api发送自定义邮件效果图

过程记录

下面将对于google cloud的相关配置过程进行详细截图与记录。

1. 打开google cloud控制台

访问谷歌控制台
打开谷歌控制台

2. 创建google api服务

启用创建api服务

3. 搜索并使用gmail服务

输入gmail进行检索
选中gmail服务

4. 开通gmail api服务

启用gmail服务

5. 创建凭据

创建凭据
创建凭据并录入对应的地址

6. 进入已创建的凭据页面

进入到凭据管理
复制这个client_id以及client_secret配置,后续备用
复制相关的配置

7. 配置权限申请以及添加用户

进入权限申请页面并添加测试用户

8. 开始配置权限发起申请

打开访问

配置前面复制的客户端ID与客户端密钥,然后选择gmail Api 并点击Authorize APIs 按钮
选择api并发起授权动作
发起gmail授权申请
同意授权申请
生成toekn并配置客户端id以及密钥

9.代码调用

至此,已完成对google mail api服务的配置,接下来,将根据获取到的配置信息,复制到代码中进行调用!
首先,先安装这个nodemailer发送邮件的三方库

1
pnpm i nodemailer

然后,利用nodemailer.createTransport()方法来创建一个邮件发送器,最终调用对应的邮件操作,如下代码所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 创建一个 SMTP 传输实例
const transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secure: true,
auth: {
type: "OAuth2",
user: process.env.GMAIL_ACCOUNT,
clientId: process.env.GMAIL_CLIENT_ID,
clientSecret: process.env.GMAIL_CLIENT_SECRET,
refreshToken: process.env.GMAIL_REFRESH_TOKEN,
accessToken: process.env.GMAIL_ACCESS_TOKEN
},

});
//? 发送邮件动作
const result = await transporter.sendMail(options)