> ## Documentation Index
> Fetch the complete documentation index at: https://bunny.net/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send an email

> Send emails from the edge using popular email providers like SendGrid or Resend.

**Resend**

To send an email using Resend, use the `resend` SDK. Set your Resend API key as an environment secret named `RESEND_API_KEY`.

```ts theme={null}
import * as BunnySDK from "@bunny.net/edgescript-sdk";
import { Resend } from "https://esm.sh/resend";
import process from "node:process";

const resend = new Resend(process.env.RESEND_API_KEY);

BunnySDK.net.http.serve(async (req) => {
  try {
    await resend.emails.send({
      from: "sender@yourdomain.com",
      to: "recipient@example.com",
      subject: "Welcome to Bunny Edge Scripting!",
      text: "This email was sent directly from the edge.",
    });
    return new Response("Email sent successfully!");
  } catch (error) {
    console.error(error);
    return new Response("Failed to send email.", { status: 500 });
  }
});
```

**SendGrid**

To send an email using SendGrid, use the `@sendgrid/mail` SDK. Set your SendGrid API key as an environment secret named `SENDGRID_API_KEY`.

```ts theme={null}
import * as BunnySDK from "@bunny.net/edgescript-sdk";
import sgMail from "https://esm.sh/@sendgrid/mail";
import process from "node:process";

sgMail.setApiKey(process.env.SENDGRID_API_KEY);

BunnySDK.net.http.serve(async (req) => {
  const msg = {
    to: "recipient@example.com",
    from: "sender@yourdomain.com",
    subject: "Welcome to Bunny Edge Scripting!",
    text: "This email was sent directly from the edge.",
  };

  try {
    await sgMail.send(msg);
    return new Response("Email sent successfully!");
  } catch (error) {
    console.error(error);
    return new Response("Failed to send email.", { status: 500 });
  }
});
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.