Перейти к документации
SDK

Установка

Один пакет, никаких зависимостей, все серверные среды выполнения.

Установка

Первый релиз — 0.0.1. У каждой задокументированной операции есть метод, проверка соответствия в пакете роняет сборку, когда какой-то метод пропадает, а API, который он оборачивает, включён во всех средах.

pnpm add @openemail/sdk
send-email.ts
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const email = await openemail.emails.send({  from: 'Acme Billing <[email protected]>',  to: '[email protected]',  subject: 'Your September invoice',  html: '<p>Invoice attached.</p>',}) console.log(email.id, email.status)

init один раз настраивает общий клиент openemail, и каждый модуль, который после этого импортирует openemail, получает именно его. Если пропустить вызов, первый же запрос соберёт клиент из OPENEMAIL_API_KEY.

То, что send() разрешился, не означает, что письмо ушло. Запланированная или отменяемая отправка возвращается со статусом queued или scheduled и завершается позже. Читайте status, а не сам факт, что промис разрешился.

Где он работает

Ноль зависимостей времени выполнения — на Node 20+, Bun, Deno и Cloudflare Workers. Используется глобальный fetch и ничего больше, и вы можете передать свой собственный.

Поставляются и ESM, и CommonJS, каждый со своими декларациями типов, поэтому работают и import { openemail } from '@openemail/sdk', и const { openemail } = require('@openemail/sdk').

Не в браузере. Клиент несёт API-ключ рабочего пространства, который может отправлять почту и читать почтовый ящик, поэтому он отказывается запускаться там, где существуют window и document. Исключение — одноразовые ящики: createTempMail() не требует ключа и работает на странице.

Это клиент на **TypeScript/JavaScript**; пакетов для Python, Go, PHP или Ruby нет. Из другого языка API — это обычный HTTP и JSON: в быстром старте есть рабочий запрос на восьми языках, а по документу OpenAPI генерируется клиент для большинства остальных.