From c1708723b649a292ac0bc965d81ec50713e9ccd3 Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Wed, 19 Mar 2025 11:31:56 +0000 Subject: [PATCH 1/3] Added react email docs --- docs/docs.json | 1 + docs/guides/examples/react-email.mdx | 123 +++++++++++++++++++++++++++ docs/images/react-email.png | Bin 0 -> 14041 bytes 3 files changed, 124 insertions(+) create mode 100644 docs/guides/examples/react-email.mdx create mode 100644 docs/images/react-email.png diff --git a/docs/docs.json b/docs/docs.json index ba9fb7bde2..e7a5dec70b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -336,6 +336,7 @@ "guides/examples/supabase-database-operations", "guides/examples/supabase-storage-upload", "guides/examples/react-pdf", + "guides/examples/react-email", "guides/examples/resend-email-sequence", "guides/examples/vercel-ai-sdk", "guides/examples/vercel-sync-env-vars" diff --git a/docs/guides/examples/react-email.mdx b/docs/guides/examples/react-email.mdx new file mode 100644 index 0000000000..0abd7efb76 --- /dev/null +++ b/docs/guides/examples/react-email.mdx @@ -0,0 +1,123 @@ +--- +title: "Send emails using React Email" +sidebarTitle: "React Email" +description: "Learn how to send beautiful emails using React Email and Trigger.dev." +--- + +## Overview + +This example demonstrates how to use Trigger.dev to send emails using React Email. + + + This example uses [Resend](https://resend.com) as the email provider. You can use other email + providers like [SendGrid](https://sendgrid.com) or [Loops](https://loops.so) as well. Full list of + their integrations can be found [here](https://react.email/docs/introduction#integrations). + + +## Task code + + + This email is built using React components. To use React components in your task, it must be a + .tsx file. + + +```tsx trigger/sendReactEmail.tsx +import { Body, Button, Container, Head, Heading, Html, Preview } from "@react-email/components"; +import { logger, task } from "@trigger.dev/sdk/v3"; +import { Resend } from "resend"; + +// Initialize Resend client +const resend = new Resend(process.env.RESEND_API_KEY); + +// React Email template component +const EmailTemplate = ({ name, message }: { name: string; message: string }) => ( + + + New message from {name} + + + Hello from Acme Inc. +

Hi {name},

+

{message}

+ +
+ + +); + +export const sendEmail = task({ + id: "send-react-email", + run: async (payload: { + to: string; + name: string; + message: string; + subject: string; + from?: string; + }) => { + try { + logger.info("Sending email using React.email and Resend", { + to: payload.to, + }); + + // Send the email using Resend + const { data, error } = await resend.emails.send({ + // The from address needs to be a verified email address you own + from: payload.from || "email@acmeinc.com", // Default from address + to: payload.to, + subject: payload.subject, + react: , + }); + + if (error) { + logger.error("Failed to send email", { error }); + throw new Error(`Failed to send email: ${error.message}`); + } + + logger.info("Email sent successfully", { emailId: data?.id }); + + // Return the response from Resend + return { + id: data?.id, + status: "sent", + }; + } catch (error) { + logger.error("Unexpected error sending email", { error }); + throw error; + } + }, +}); +``` + +## How the email should look + +This example email should look like this: +![React Email](/images/react-email.png) + +This is just a simple implementation, you can customize the email to be as complex as you want. Check out the [React email templates](https://react.email/templates) for more inspiration. + +## Testing your task + +To test this task in the [dashboard](https://cloud.trigger.dev), you can use the following payload: + +```json +{ + "to": "recipient@example.com", + "name": "Jane Doe", + "message": "Thank you for signing up for our service!", + "subject": "Welcome to Acme Inc." +} +``` + +## Deploying your task + +Deploy the task to production using the Trigger.dev CLI `deploy` command. diff --git a/docs/images/react-email.png b/docs/images/react-email.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1ba86dc2c1e6165126c12451c4bfbbbc96f72d GIT binary patch literal 14041 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 KLWP{=yZ;8%$Jw?3 literal 0 HcmV?d00001 From 1655aca39219d4937e059c591f26fac56fe539ec Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Wed, 19 Mar 2025 13:30:31 +0000 Subject: [PATCH 2/3] Added jsx note --- docs/guides/examples/react-email.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/guides/examples/react-email.mdx b/docs/guides/examples/react-email.mdx index 0abd7efb76..6dd362c9af 100644 --- a/docs/guides/examples/react-email.mdx +++ b/docs/guides/examples/react-email.mdx @@ -121,3 +121,7 @@ To test this task in the [dashboard](https://cloud.trigger.dev), you can use the ## Deploying your task Deploy the task to production using the Trigger.dev CLI `deploy` command. + +## Troubleshooting + +- If you are having `jsx` issues, you can customize the `jsx` options that are passed to `esbuild` during the build process using our [jsx config option](/config/config-file#jsx). From 495096245e958f1417d297f8abbaf099849ebdce Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Mon, 24 Mar 2025 14:59:14 +0000 Subject: [PATCH 3/3] Removed troubleshooting --- docs/guides/examples/react-email.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/guides/examples/react-email.mdx b/docs/guides/examples/react-email.mdx index 6dd362c9af..0abd7efb76 100644 --- a/docs/guides/examples/react-email.mdx +++ b/docs/guides/examples/react-email.mdx @@ -121,7 +121,3 @@ To test this task in the [dashboard](https://cloud.trigger.dev), you can use the ## Deploying your task Deploy the task to production using the Trigger.dev CLI `deploy` command. - -## Troubleshooting - -- If you are having `jsx` issues, you can customize the `jsx` options that are passed to `esbuild` during the build process using our [jsx config option](/config/config-file#jsx).