---
title: "Email inside your product"
description: "Send, read and organise mail from your own code with a typed client."
url: "https://openemail.uk/features/in-app-mail"
---

Built on top

# Email inside your product a few lines of code

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

[Open mail](https://openemail.uk/mail/inbox) [Get Started](https://openemail.uk/signup.md)[Every walkthrough](https://openemail.uk/features/in-practice.md)

openemail.emails.send

Your app

await openemail.emails.send({

from: 'receipts@acme.com',

to: user.email,

template: 'order-receipt',

})

id msg\_3e91c7

queued sent delivered

email.opened email.clicked per message

The call answers with an id. That id is how you read the trail later.

How it works

## Running in three steps.

1. 01
   
   Install the client
   
   Add the package and set your workspace key.
2. 02
   
   Send the message
   
   One call: the sender, the recipients, a body or a template.
3. 03
   
   Follow it
   
   Read the delivery trail, then opens and clicks per message.

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.

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.

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.

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.

Templates

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

Intro Invoice Follow-up

Hi Sarah, good to meet you at

See when mail you sent was opened

Whether a message you sent has been opened, when, how many times and which of its links were followed. On unless you turn it off, and plain about the readings it cannot get.

Scheduled send

Write it now, land it when they are awake.

Tomorrow, 8:00

queued, not sent

Full-text search

Forgiving words and operators like from: and has:, inside the folder you are reading.

invoice from stripe

Stripe · Invoice #4021

Stripe · Receipt for Aug

Labels

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

Invoices Recruiting Newsletters

Drafts

Autosaved three seconds after you stop typing, and reopened from the Drafts folder with the recipients, the subject, the body and the From address intact. The attachments stay behind.

Re: Design review

Thanks. Shipping the fix this afternoon.

Send no mouse, no menus

Nearby

## Other jobs for the same inbox.

Rules for arriving mail

Say what happens to a message before anybody opens it.

billing@northwind.co

Invoice 2214 for August Invoices Archive

1 Subject has invoice 24 +1

2 From domain is pinefield.dev 61 +1

Test your signup mail

Soon

Give each test run its own address and read the mail it receives.

signup-02 @acme.com

Confirm your email 730915

signup-01 @acme.com 418204

signup-02 @acme.com 730915

Send a newsletter

Design the email once, send it from your own code, and see what was opened.

Hi {{firstName}} Omar

Read the update

dana@northwind.co Clicked

omar@lumen.io Sent

130 Sent 42 Opened 9 Clicked

[Every walkthrough](https://openemail.uk/features/in-practice.md)
