Skip to main content

Prerequisites

To get the most out of this guide, you’ll need to: Make sure you have the latest version of the Supabase CLI installed.

1. Create Supabase function

Create a new function locally:
supabase functions new resend

2. Edit the handler function

Paste the following code into the index.ts file:
index.ts
const RESEND_API_KEY = Deno.env.get('RESEND_API_KEY');

const handler = async (_request: Request): Promise<Response> => {
  const res = await fetch('https://api.resend.com/emails', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${RESEND_API_KEY}`,
    },
    body: JSON.stringify({
      from: 'Acme <onboarding@resend.dev>',
      to: ['delivered@resend.dev'],
      subject: 'hello world',
      html: '<strong>it works!</strong>',
    }),
  });

  const data = await res.json();

  return new Response(JSON.stringify(data), {
    status: 200,
    headers: {
      'Content-Type': 'application/json',
    },
  });
};

Deno.serve(handler);

3. Deploy and send email

Run function locally:
supabase functions start
supabase functions serve resend --no-verify-jwt
Deploy function to Supabase:
supabase functions deploy resend
Open the endpoint URL to send an email: Supabase Edge Functions - Deploy Function

4. Try it yourself

Supabase Edge Functions Example

See the full source code.