Установка
Один пакет, никаких зависимостей, все серверные среды выполнения.
Установка
Первый релиз — 0.0.1. У каждой задокументированной операции есть метод, проверка соответствия в пакете роняет сборку, когда какой-то метод пропадает, а API, который он оборачивает, включён во всех средах.
pnpm add @openemail/sdkimport { 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 генерируется клиент для большинства остальных.