@mailkite/expo
v0.10.0
Published
Expo / React Native adapter for MailKite — wires expo-secure-store + expo-auth-session into @mailkite/client so RN apps get the OAuth (the token is the user) flow with zero re-implemented PKCE.
Downloads
545
Maintainers
Readme
Read-only mirror. This repo is a generated, release-time mirror of the MailKite monorepo (the private source of truth) — development doesn't happen here. Install from npm and open issues against the MailKite docs.
Install
npx expo install expo-secure-store expo-web-browser expo-auth-session
npm install @mailkite/expo @mailkite/clientQuickstart
import { createMailKiteClient } from "@mailkite/expo";
const mk = createMailKiteClient({ redirectUri: "mailkite-app://redirect" });
await mk.login(); // system browser + secure token storage
await mk.send({ from: "[email protected]", to: "[email protected]", subject: "Hi", text: "Hello" });Examples
Runnable examples live in examples/ — send mail, verify webhooks, build an AI email agent, and log users in:
| Example | What it shows |
| --- | --- |
| examples/01-login-and-send.tsx | Sign the end user into THEIR OWN MailKite account (system browser + secure token… |
API methods
Every method is documented on its own page under docs/. The full surface:
| Method | What it does |
| --- | --- |
| send | Send a message over a verified domain. Pass templateId (+ optional templateData) to… |
| uploadAttachment | Upload a file to MailKite storage and get back a secure, time-limited URL. Reference the… |
| listTemplates | List your saved email templates (light metadata only — no body). Use getTemplate for the… |
| listBaseTemplates | List the premade base templates (light metadata). Clone one with createTemplate({ baseId… |
| getTemplate | Get one template (full: subject, html, text, theme). Works for your templates (tpl_…) and… |
| createTemplate | Create a template. Pass baseId to clone a base template into your own, or provide… |
| listDomains | List your domains, each with its webhook URL. |
| createDomain | Add a domain. Returns the domain + DNS records. |
| getDomain | Get one domain with DNS records + webhook. |
| deleteDomain | Remove a domain. |
| verifyDomain | Check DNS and update status. |
| setWebhook | Set or replace the domain's catch-all webhook. |
| deleteWebhook | Remove the domain's webhook. |
| testWebhook | Send a signed test event to the domain's webhook. |
| checkDomainAvailability | Check whether a domain is available to register, and at what price. Read-only — no charge. |
| registerDomain | Register (buy) a domain on the customer's behalf; provisions mail DNS and adds it to the… |
| listRoutes | List inbound routing rules. |
| createRoute | Create a route (match, action, destination). |
| deleteRoute | Delete an inbound routing rule by id. Pair with createRoute to register and tear down a… |
| agent | Send a message to one of your inbox agents and get its reply. Defaults to the account's… |
| route | Route a message to one of your registered routes (by routeId or address), running… |
| listMessages | List stored messages, newest first. Optionally filter with search (matches sender… |
| getMessage | Get a message with deliveries + attachments. |
| retryDelivery | Re-deliver a stored message to its webhook. |
| listLists | List your contact lists (static, curated broadcast audiences), each with its member count. |
| createList | Create a contact list. Returns the list with its id (lst_…); add contacts with… |
| getList | Get one contact list with its member count. |
| updateList | Rename a contact list. |
| deleteList | Delete a contact list. The list is removed; the contacts themselves are kept. |
| listListContacts | List the contacts that are members of a list, newest first. Optionally page with before… |
| addListContacts | Add contacts (by id, ctr_…) to a list. Returns how many were newly added; contacts… |
| removeListContact | Remove one contact from a list (the contact itself is kept). |
| listBroadcasts | List your broadcasts (one-to-many sends) with status and send stats. |
| createBroadcast | Create a broadcast draft. from is required; set audience to { type: "all" } or {… |
| getBroadcast | Get one broadcast with its status and recipient summary. |
| updateBroadcast | Edit a draft broadcast (any of from/subject/audience/html/… ). Drafts only. |
| deleteBroadcast | Delete a broadcast draft. |
| sendBroadcast | Send a broadcast now, or pass an ISO 8601 scheduledAt to schedule it. A one-click… |
| semanticSearch | Semantic search over the MailKite documentation — returns the most relevant doc sections… |
Use it from an AI agent — MCP + Agent connectors
MailKite speaks the Model Context Protocol: every API method is a tool your AI assistant (Claude, Cursor, …) can call — send mail, manage domains, search the docs, and give an agent its own inbox. Full guide: https://mailkite.dev/docs/ai-agents.
Hosted (recommended) — one-click OAuth, no key to copy:
claude mcp add --transport http mailkite https://mcp.mailkite.dev/mcpIn Claude Code you can also install the plugin:
/plugin marketplace add mailkite/claude-code
/plugin install mailkite@mailkiteAny chat/UI agent: "Add the MCP server at https://mcp.mailkite.dev/mcp and authenticate in the browser when prompted."
Local (static key, offline / CI):
{ "mcpServers": { "mailkite": { "command": "npx", "args": ["-y", "@mailkite/mcp"], "env": { "MAILKITE_API_KEY": "mk_live_…" } } } }Give an agent its own inbox. Route inbound mail to a built-in inbox agent (the agent route action) and it answers, files, or escalates on its own — see https://mailkite.dev/docs/ai-agents.
All MailKite libraries
Same contract, every language — pick the one for your stack (full list: https://mailkite.dev/docs/libraries):
| Library | Repo | Distribution |
| --- | --- | --- |
| MailKite for Node.js | mailkite-node | npm |
| MailKite for Python | mailkite-python | PyPI |
| MailKite for Ruby | mailkite-ruby | RubyGems |
| MailKite for Java | mailkite-java | Maven Central |
| MailKite for PHP | mailkite-php | Packagist |
| MailKite for Go | mailkite-go | Go modules |
| @mailkite/cli | mailkite-cli | npm |
| @mailkite/mcp | mailkite-mcp | npm |
| @mailkite/client | mailkite-js | npm |
| @mailkite/expo (this repo) | mailkite-expo | npm |
| MailKiteClient | mailkite-swift | Swift Package Manager |
| dev.mailkite:mailkite-client | mailkite-kotlin | Maven Central |
| mailkite_client | mailkite-flutter | pub.dev |
Docs & links
- 📚 Documentation: https://mailkite.dev/docs
- 📦 This library's guide: https://mailkite.dev/docs/libraries
- 🤖 AI agents (MCP + inbox agents): https://mailkite.dev/docs/ai-agents
- 🌐 Website: https://mailkite.dev
- 🧭 All libraries: https://mailkite.dev/docs/libraries
Generated from the shared MailKite API contract. © MailKite.
