掌握Next.js(八)– 发送电子邮件

本文学习如何在Next.js项目中发送电子邮件。


设置Next Email

发送电子邮件有个强大的库叫React Email。

https://react.email

React Email提供一些组件用于创建HTML Email,同时也提供工具预览电子邮件以及提供函数来发送邮件。

安装:

npm install react-email @react-email/components

再到package.json,修改script:

“preview-email”:”email dev -p 3050″

默认情况下使用 3000 端口,为了避免冲突我们使用3050端口。

再到根目录下,新建emails目录,这是承载电子邮件模板的目录。


创建电子邮件模板

在emails目录下新建WelcomeTemplate.tsx文件,名字是随意的。

从react-email导入一些用于创建Html邮件的组件,并创建一个简单的模板。


预览电子邮件

运行命令来启动电子邮件项目,但在此之前,我们将 .react-email文件夹 加入 .gitignore,否则在该文件夹下自动产生的数千个文件都会被跟踪。

打开 .gitignore, 添加 .react-email/ , 注意斜杠不要忘写。

然后执行:

npm run preview-email

完成后访问 http://localhost:3050,能看到我们刚建的邮件模板,我们可以直接发送邮件,而不用设置邮件服务器。


电子邮件样式

有两种方法样式化电子邮件,一是使用CSSProperties,二是使用Tailwind。

首先使用CSSProperties,导入CSSProperties,然后创建一个body对象,在body里设置相关CSS样式,再将body赋给style。

查看浏览器,样式生效了。

再来看看使用 Tailwind。

从react-email导入Tailwind,再用Tailwind组件将 body包起来,然后就可以像普通使用Tailwind一样使用它了。


发送电子邮件

查看react.email文档,得知到有个Resend可以用于发送电子邮件,Resend也是由react.email团队开发的。我们访问Resend官网查看使用说明:

https://resend.com

如果没有账户就注册一个,生成API Key,记录。

修改.env 文件,添加API Key环境变量RESEND_API_KEY。

再安装resend。

npm i resend@1.0.0

最后,创建一个API端点,用于发送邮件。实际项目一般是提交某个表单触发电子邮件的发送,这里就处理POST方法。

在api目录创建send-email目录,再新建route.tsx文件。在该文件中,创建POST方法,利用resend.emails.send方法发送邮件,提供邮件模板组件及必要的参数就可以发送了。


小结

本文介绍了如何在Next.js项目中发送电子邮件。

下一篇介绍Next.js的优化。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注