1. Install dependencies

Get the @react-email/components package and the Scaleway 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 Scaleway SDK to send it.

import { render } from "@react-email/components";
import { TransactionalEmail, createClient } from "@scaleway/sdk";
import { Email } from "./email";

const client = createClient({
  accessKey: process.env.ACCESS_KEY,
  secretKey: process.env.SECRET_KEY,
  defaultProjectId: process.env.PROJECT_ID,
  defaultRegion: "fr-par",
  defaultZone: "fr-par-1",
});

const transactionalEmailClient = new TransactionalEmail.v1alpha1.API(client);

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

const sender = {
  email: "react-email@transactional.email.fr",
  subject: "TEST",
  name: "Team",
};

const userInvited = {
  email: "XXXX@scaleway.com",
  name: "TEST",
  teamName: "Team",
};

const userInvitedBy = {
  email: "XXXX@scaleway.com",
  name: "TEST",
  teamName: "Team",
};

transactionalEmailClient.createEmail({
  from: {
    email: sender.email,
    name: sender.name,
  },
  to: [
    {
      email: userInvited.email,
      name: userInvited.name,
    },
  ],
  subject: sender.subject,
  text: null,
  html: emailHtml,
});

Try it yourself

Scaleway Transactional Email

See the full source code.