Built on Resend

Send email from any of your apps.

Save your Resend key once. Then every app uses the same MailRelay key, so you don’t paste Resend everywhere.

Google Apps Script
const response = UrlFetchApp.fetch(
  "https://maailrelay-hfrq.vercel.app//api/send",
  {
    method: "post",
    contentType: "application/json",
    headers: {
      Authorization: "Bearer YOUR_MAILRELAY_API_KEY"
    },
    payload: JSON.stringify({
      to: "customer@example.com",
      subject: "Your invoice is ready",
      html: "<h1>Your invoice is ready</h1>"
    }),
    muteHttpExceptions: true
  }
);

Logger.log(response.getContentText());
Response200 OK
{
  "success": true,
  "messageId": "re_1234567890"
}

Invoices

Send a PDF or payment note when a bill is ready.

Alerts

Tell someone when a form, job, or script finishes.

Reports

Push a daily or weekly summary to a mailbox.

Apps Script

Call MailRelay from a Google Sheet or form.

One request

Send mail with a single POST from Node, curl, or Apps Script.

Keep keys safe

Your Resend key stays on the server. Apps only get a MailRelay key.

Still Resend

Delivery still goes through your Resend account and domain.

Many apps

Reuse one setup across invoices, alerts, and scripts.

How it works

From your app to the inbox, in four steps.

01

Your app

Calls MailRelay with your project key.

02

MailRelay

Checks the key and the send request.

03

Resend

Sends the email from your account.

04

Inbox

The recipient gets the message.

curl
curl -X POST https://maailrelay-hfrq.vercel.app//api/send \
  -H "Authorization: Bearer YOUR_MAILRELAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "customer@example.com",
    "subject": "Your invoice is ready",
    "html": "<h1>Your invoice is ready</h1>"
  }'

This is not a Resend replacement. Keep your domain and verification there. Your apps only talk to MailRelay.

From your app to the inbox

  1. 1. Connect Resend
    Paste your Resend key in the dashboard. We hide it after you save.
  2. 2. Make a MailRelay key
    Your apps use that key. You only see the full value once.
  3. 3. Send
    POST from Apps Script, Node, or anything that can make a request.
Node.js
const response = await fetch("https://maailrelay-hfrq.vercel.app//api/send", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_MAILRELAY_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: "customer@example.com",
    subject: "Your invoice is ready",
    html: "<h1>Your invoice is ready</h1>",
  }),
});

const data = await response.json();
console.log(data);