Skip to content

Resend

One Resend API key covers both transports: Mailway uses it for Resend’s API and as the password for its SMTP server. Resend’s webhooks report what happened after the handoff — confirmed deliveries, bounces, delays, and complaints — which powers the delivered state, webhooks like mail.delivered and mail.bounced, and automatic suppressions.

  • A Resend account with your sender domain added and verified — see Deliverability for what each record proves. Mail from a domain that isn’t verified is refused, and Mailway fails over to your next provider.
  • An API key (Resend → API Keys). A Sending access key is enough; a full-access key also lets the connection check see whether your domain is verified.
  1. Add the provider.

    In the console, open Providers → New provider, pick Resend and paste the API key. Mailway relays SMTP mail over smtp.resend.com on port 465 (implicit TLS, user resend), and sends API and console mail over Resend’s API. Secrets are encrypted at rest.

  2. Attach it to a project.

    Open the project, attach the provider, and position it in the failover order.

Without delivery events, Resend only reports that it accepted the mail. With them, Resend tells Mailway what happened afterwards.

  1. Open delivery tracking. In the console, open the provider → Delivery tracking (beside Configure). Mailway creates the provider’s webhook URL and shows it ready to copy. The URL contains a per-provider secret — treat it like a password (regenerating it at the bottom of the dialog revokes the old one instantly).

  2. Add the webhook in Resend. Resend → Webhooks → Add Webhook. Paste the URL as the Endpoint URL and select email.delivered, email.bounced, email.delivery_delayed, email.complained, email.failed, and email.suppressed. Sends, opens, clicks, and the contact and domain events can stay off — Mailway never tracks engagement, so those are ignored.

  3. Store the signing secret (required). Save the webhook, copy its Signing Secret (whsec_…, on the webhook’s detail page) and paste it into the dialog’s Paste the signing secret step. Resend signs every event (Svix); Mailway accepts only events with a valid signature from the last five minutes, and refuses every event until the secret is stored.

Resend event Mailway outcome
email.delivered The mail turns delivered (confirmed by the provider’s event).
email.bounced (permanent) The mail turns bounced; the address is auto-suppressed for the project.
email.bounced (transient), email.delivery_delayed Recorded as soft_bounced (temporary; a later delivery outranks it).
email.complained The mail turns complained; the address is auto-suppressed.
email.failed, email.suppressed Recorded as dropped: Resend didn’t send it. The mail keeps its state.
  • Connection check. The provider page’s connection check logs in over SMTP and makes one read-only API call, without sending anything.
  • Delivery events. Send a test email from the Delivery tracking dialog’s last step: it waits for Resend’s first event and ticks when it arrives.

Resend’s mail leaves through Amazon SES, so as a backup for your own SES account it shares SES’s infrastructure. It also changes a few things in the delivered copy — including a two-link List-Unsubscribe over SMTP. See What providers change.

Your Resend plan’s own sending limits apply. Mailway adds none for Resend beyond your Mailway plan’s quotas.