Built on top

Rules for arriving mail
written once, run always

Say what happens to a message before anybody opens it.

Rules
Invoice 2214 for AugustInvoicesArchive
1Subject hasinvoiceStop24+1
2From domain ispinefield.dev61+1
3Has an attachment9+1

Rules run as mail arrives. Nothing already in the mailbox moves.

How it works

Running in three steps.

  1. 01

    Write the rule

    Conditions on the arriving message, then the actions to take.

  2. 02

    Try it first

    Run it over the last thirty days without touching a message.

  3. 03

    Turn it on

    It runs on arrival, and the log says what happened.

What it runs on

The parts doing the work.

Nothing here is a separate product. Each one is a piece of the mailbox you already have.

Rules you write yourself

Your own conditions, and what should happen to anything that matches them.

[email protected]blocked sender
[email protected]blocked domain
[email protected]language filter
[email protected]your rule → archive
Webhooks

Tell your endpoint when mail arrives, instead of making you poll.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
REST API

A documented HTTP API with issuable, scopable, revocable keys.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
Typed SDKs

A TypeScript client first, then the rest.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
Labels

Name a label, pick a colour, and filter the list down to it.

InvoicesRecruitingNewsletters
Templates

A body written once, versioned, and sent many times: from the composer, from your own code, or by an agent.

IntroInvoiceFollow-up
Hi Sarah, good to meet you at
Block a sender or a domain

One address, or everything from a domain, stopped before it reaches you.

[email protected]blocked sender
[email protected]blocked domain
[email protected]language filter
[email protected]your rule → archive

Nearby

Other jobs for the same inbox.

Email inside your product

Send, read and organise mail from your own code with a typed client.

awaitopenemail.emails.send({
})
idmsg_3e91c7
queuedsentdelivered
email.openedemail.clicked
An address per customer

Give every ticket, record or customer its own address, with nothing to create.

Ticket 8123ticket-8123@in.yourapp.com
Ticket 8124ticket-8124@in.yourapp.com
Toticket-8123@in.yourapp.com
Fromticket-8123@in.yourapp.comSame address
Email into your app

Mail arriving at your domain reaches your server as a signed webhook, seconds later.

POSThooks.acme.dev/mail200
typeemail.received

Your inbox,
on your own terms.

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

OpenEmail

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

© 2026 OpenEmail. All rights reserved.