apps/docs/integrations/aws-ses.mdx
Get the @react-email/components package and the AWS SES Node.js SDK.
<CodeGroup>npm install @aws-sdk/client-ses @react-email/components
yarn add @aws-sdk/client-ses @react-email/components
pnpm add @aws-sdk/client-ses @react-email/components
Start by building your email template in a .jsx or .tsx file.
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>
);
}
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: '[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);
<Card title="AWS SES example" icon='arrow-up-right-from-square' iconType="duotone" href="https://github.com/resend/react-email/tree/main/examples/aws-ses"
See the full source code. </Card>