1. Install dependencies

Get the @react-email/components package and the AWS SES Node.js SDK.

2. Create an email using React

Start by building your email template in a .jsx or .tsx file.

email.tsx
import * as React from 'react';
import { Html, Button } from "@react-email/components";

export function Email(props) {
  const { url } = props;

  return (
    <Html lang="en">
      <Button href={url}>Click me</Button>
    </Html>
  );
}

3. Convert to HTML and send email

Import the email template you just built, convert into an HTML string, and use the AWS SES SDK to send it.

import type { SendEmailCommandInput } from "@aws-sdk/client-ses";
import { render } from '@react-email/components';
import { SES } from '@aws-sdk/client-ses';
import { Email } from './email';

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

const emailHtml = await render(<Email url="https://example.com" />);

const params: SendEmailCommandInput = {
  Source: 'you@example.com',
  Destination: {
    ToAddresses: ['user@gmail.com'],
  },
  Message: {
    Body: {
      Html: {
        Charset: 'UTF-8',
        Data: emailHtml,
      },
    },
    Subject: {
      Charset: 'UTF-8',
      Data: 'hello world',
    },
  },
};

await ses.sendEmail(params);

Try it yourself

AWS SES example

See the full source code.