ParseMail

Email parsing SaaS

Inbound mail, structured data.

Each workspace gets its own inboxes for accounts and leads. ParseMail stores the mail, keeps the fields you select, and sends those fields to the platforms you connect.

Demo login: demo@parsemail.dev / parsemail-demo

Inbound email

From: Billing <billing@northwind.example>
To: invoices@emailparser.cloud
Subject: Invoice INV-1042 from Northwind
Date: Tue, 15 Sep 2026 10:04:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"

Hello,

Please find invoice INV-1042 attached.

Invoice # INV-1042
Total: $1,284.50
Due date: 2026-10-01
Account: 8821-44

Pay online: https://northwind.example/pay/INV-1042

Thanks,
Northwind Billing

Parsed JSON

{
  "invoice_number": "INV-1042",
  "total": "1,284.50",
  "due_date": "2026-10-01",
  "from": "billing@northwind.example"
}

01

Create an inbox

Each workspace inbox gets a unique address for accounts, leads, or invoices. Point Mailgun, SendGrid, or Postmark at it.

02

Select the fields

Regex or between-markers pick the values you want kept. The full message stays in Postgres.

03

Ship structured data

Each connected platform receives a JSON POST of those selected fields, signed with HMAC.

Built for product teams

  • MIME parsing for raw RFC822, JSON parts, SendGrid, and Mailgun payloads.
  • Selected fields stored per workspace and posted to HubSpot, Salesforce, Slack, or any JSON URL.
  • API keys for listing inboxes and fetching parsed emails.
  • A playground to iterate on rules before you wire production mail.
curl -X POST $APP_URL/api/inbound/$TOKEN \
  -H 'content-type: application/json' \
  -d '{"raw": "...eml..."}'

curl $APP_URL/api/v1/emails \
  -H 'authorization: Bearer pm_live_…'