---
title: "Receive Emails as Webhooks: Inbound Email Parsing & Forwarding | WebhookRelay"
meta:
  "og:description": "Webhook Relay can now receive email and turn it into a webhook — parse each message to JSON (from, subject, text, HTML, attachments) and forward it to your endpoint, Slack, a database and more."
  "og:title": "Receive Emails as Webhooks: Inbound Email Parsing & Forwarding"
  description: "Webhook Relay can now receive email and turn it into a webhook — parse each message to JSON (from, subject, text, HTML, attachments) and forward it to your endpoint, Slack, a database and more."
---

![Stripes](https://webhookrelay.com/blog/receive-emails-as-webhooks/images/stripes.svg)

# **Receive Emails as Webhooks: Inbound Email Parsing & Forwarding**

Webhook Relay can now receive email and turn it into a webhook — parse each message to JSON (from, subject, text, HTML, attachments) and forward it to your endpoint, Slack, a database and more.

![Receive emails as webhooks](https://webhookrelay.com/blog/receive-emails-as-webhooks/images/blog/heroes/route.jpg)

A lot of useful information still arrives as **email** — support requests, server alerts, order confirmations, vendor notifications, and form submissions from tools that only email you. Acting on it usually means running a mail server, polling an IMAP inbox, or wiring up Zapier.

Now there's a simpler option: **Webhook Relay can receive email for you and turn each message into a webhook.**

## [Receiving](#receiving)

Add an **email input** to a bucket and Webhook Relay gives you a unique address like `5519fb0d-997a-46cd-b102-ac990b4c38fa@in.webhookrelay-mail.com`. Point any sender at it — there's no DNS or MX setup, and nothing to host. See [Email to Webhook](https://webhookrelay.com/blog/receive-emails-as-webhooks/email-to-webhook/) for the overview, or the [docs](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/email/) to set one up.

## [Parsing](#parsing)

Every message is parsed server-side into clean JSON and delivered with `Content-Type: application/json`:

```
{
  "from": "jon@example.com",
  "from_name": "Jon Snow",
  "subject": "Can't log in to my account",
  "text": "Hi, I can't log in since this morning…",
  "html": "<p>Hi, I can't log in since this morning…</p>",
  "to": ["5519fb0d-…@in.webhookrelay-mail.com"],
  "spf": "pass", "dkim": "pass", "dmarc": "pass",
  "attachments": [
    { "name": "screenshot.png", "content_type": "image/png", "size": 48213, "content": "iVBORw0KGgo…" }
  ]
}
```

You get the sender, subject, both body parts, all headers, the SPF/DKIM/DMARC results, and attachments (base64-encoded). The full [payload reference](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/email/payload/) lists every field, and you can [restrict senders and cap attachments](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/email/filtering-and-policy/) per input.

## [Forwarding](#forwarding)

Because the parsed email becomes an ordinary event on the bucket, you can do anything you'd do with a webhook: forward it to your endpoint (public or [behind a firewall](https://webhookrelay.com/blog/receive-emails-as-webhooks/webhooks/)), fan it out to several destinations, retry on failure, and [transform it in flight](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/webhooks/functions/) into whatever shape the destination expects. Build that message visually with the [Slack/Discord/Teams formatter](https://webhookrelay.com/blog/receive-emails-as-webhooks/webhook-message-formatter/).

## [Examples](#examples)

Step-by-step tutorials for the common destinations:

- [Email → Slack](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/slack/) — post inbound email into a Slack channel
- [Email → Discord](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/discord/) — route email to a Discord channel
- [Email → Microsoft Teams](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/microsoft-teams/) — post a Teams card per email
- [Email → Google Sheets](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/google-sheets/) — append a row per email
- [Email → Airtable](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/airtable/) — create an Airtable record
- [Email → Notion](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/notion/) — create a page in a Notion database
- [Email → your API](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/api/) — POST email to your own endpoint
- [Email → a database](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/tutorials/email/database/) — insert every email into your DB

## [Get started](#get-started)

[Create an email input](https://my.webhookrelay.com) on a bucket, or read [the email docs](https://webhookrelay.com/blog/receive-emails-as-webhooks/docs/email/). It works on the free tier — same as any other Webhook Relay input.