reactjs 使用React Email发送邮件

von4xj4u  于 2023-10-17  发布在  React
关注(0)|答案(1)|浏览(295)

我使用Next Js作为前端,Nest Js作为后端,AWS SES v2作为电子邮件服务。目前,我发送电子邮件使用EJS电子邮件模板,我在后端。我想切换到React电子邮件。但是React电子邮件是在前端生成的,并且使用JSX,那么我如何在我的项目中实现React电子邮件呢?

ddrv8njm

ddrv8njm1#

安装及基础设置

React Email使用React作为其语法。你可以在后台使用React Email,如下所示:
1.在你的后台创建一个类似电子邮件文件夹的东西。
1.使用npm install react-email @react-email/button @react-email/html -E在顶级后端文件夹中安装所需的依赖项
1.将email:dev脚本添加到后端package.json,如下所示:

{
  "scripts": {
    "dev": "email dev"
  }
}

1.在之前创建的emails文件夹中创建一个演示电子邮件,如下所示:

import { Button } from "@react-email/button";
import { Html } from "@react-email/html";
import * as React from "react";

export default function Email() {
  return (
    <Html>
      <Button
        href="https://example.com"
        style={{ background: "#000", color: "#fff", padding: "12px 20px" }}
      >
        Click me
      </Button>
    </Html>
  );
}

1.使用npm run emails:dev预览

发送邮件

在这一切之后,你必须真正发送电子邮件。按照以下步骤开始发送邮件:
1.创建名为/send-email的API路由
1.在API路由中,使用以下代码并根据需要进行调整。

import { render } from '@react-email/render';
import { SES } from '@aws-sdk/client-ses';
import Email from '../../emails/email';

const ses = new SES({ region: process.env.AWS_SES_REGION })

const emailHtml = render(Email({ url:"https://example.com" }));

const params = {
  Source: '[email protected]',
  Destination: {
    ToAddresses: ['[email protected]'],
  },
  Message: {
    Body: {
      Html: {
        Charset: 'UTF-8',
        Data: emailHtml,
      },
    },
    Subject: {
      Charset: 'UTF-8',
      Data: 'hello world',
    },
  },
};

await ses.sendEmail(params);

资料来源:

相关问题