Fejlesztők
A postafiókot nem érdekli,
ki vezeti.
Amit az alkalmazás tud, azt a kódod is tudja: 104 dokumentált művelet 68 útvonalon, egy OpenAPI 3.1 dokumentum mögött, amelyet kulcs nélkül is elolvashatsz. A TypeScript-klienst minden buildnél ehhez a dokumentumhoz mérjük.
Az MCP-hez nincs mit beilleszteni. A kliens a végpontból deríti ki az engedélyezési szervert, regisztrálja magát, és idehoz bejelentkezni.
104
dokumentált művelet
68
útvonal egyetlen hoston
116
SDK-metódus, mindet lefedve
20
webhookesemény, három családban
Az OpenAPI 3.1 dokumentum a GET /openapi.json címen van, és az olvasásához nem kell kulcs.
Felületek
Három ajtó,
egy postafiók.
A munkaterületi kulcs dönti el, mit tehet egy hívás, és mely címek nevében küldhet. A visszavonás frissítés, nem törlés, így egy későbbi hívás megtudja, hogy a kulcsot visszavonták.
Egy kulcs legfeljebb 25 egész domain és 50 egyedi cím nevében küldhet. A GET /ping visszaolvassa a birtokolt hatóköröket és azokat, amelyeket a szerepköre meghagyott.
Irányíts egy klienst a végpontra, és jelentkezz be. Nincs mit beilleszteni, mert a kliens regisztrálja magát, és idehoz.
Az eszközök abból épülnek, amit a hívó tehet, így az olvasásra fogott kliensben nincs küldő eszköz. A token ettől még az egész postafiókot eléri.
Regisztrálj egy https-végpontot, és a postafiók küldeni fog rá. A kézbesítéseket maga a postafiók váltja ki, nem egy API-hívás, így az alkalmazásban megírt levél és az API-ra küldött kérés ugyanazt okozza.
20 esemény három családban, és postafiókonként tíz végpont.
Egyezés
A kliens nem maradhat le
az API mögött.
Egy egyezésellenőrzés minden buildnél elolvassa az OpenAPI-dokumentumot, és elhasal az eltérésen: olyan metóduson, amely a specifikációban nem létező műveletre mutat, olyan dokumentált műveleten, amelyhez nincs metódus, vagy olyan hatókörlistán, amely nem egyezik azzal, amit a művelet megkövetel. Kiírja, mit bizonyított, és ez ma 116 SDK-metódust jelent mind a 104 dokumentált műveletre.
A konfiguráció, a kérés és a hívás ugyanaz a művelet, háromféleképpen leírva.
Ügynökök, API és MCP
Az OpenEmailt nemcsak ember, szoftver is kezelheti. A postafiók mindkét esetben ugyanaz.
MCP-szerver
Irányítsd a Claude-ot vagy bármelyik MCP-klienst a postafiókodra.
OAuth külső kliensekhez
HamarosanÖnkiszolgáló kliensregisztráció PKCE-vel, hogy egy alkalmazás rendesen kérhessen hozzáférést.
A hozzájárulás és a visszavonás megvan; a hatókör nem, így egy token a teljes postafiókodhoz hozzáfér, nem csak ahhoz a részéhez, amelyet az alkalmazás kért.
REST API
Dokumentált HTTP API kiadható, hatókörözhető, visszavonható kulcsokkal.
Gyorsindítás
A nulláról egy elküldött üzenetig.
Három lépés.
- 1
Készíts kulcsot
Beállítások, API-kulcsok, egy saját postafiókodon. Válaszd ki a hatóköreit, és szűkítsd egész domainekre vagy egyes címekre, hogy mi nevében küldhet. A titkot egyszer mutatjuk meg, és amit tárolunk, az egy egyirányú hash.
A GET /ping a kulcson lévő hatóköröket és a szerepköre által meghagyott hatóköröket adja vissza. export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \ -H "Authorization: Bearer $OPENEMAIL_API_KEY" - 2
Telepítsd a klienst
Függőségmentes TypeScript-kliens, ESM és CommonJS formában közzétéve, a kulcsot az OPENEMAIL_API_KEY változóból olvassa. Hagyd ki, ha inkább magad küldenél JSON-t, mert minden végpont sima HTTP.
Node 18-tól felfelé, Workers, Deno, Bun és a böngésző. bun add @openemail/sdk - 3
Küldés
A válasz hozza az azonosítót. GET /emails/{id} feloldja, az /events adja a címzettenkénti nyomvonalat, a /tracking pedig a megnyitásokat és a kattintásokat.
Az ugyanazt az Idempotency-Key értéket vivő újrapróbálkozás az első eredményt adja vissza, Idempotency-Replayed: true mellett. 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)
Hiányzik
Amit még nem tesz meg
helyetted.
Öt dolog, amit érdemes tudni, mielőtt erre építesz, nem pedig utána.
- Nincs feltöltési végpont
- A beágyazott mellékletek base64-ként mennek, összesen 5 MB-os korláttal. Nagyobb fájlt úgy küldesz, hogy egy már a munkaterületen lévő fájlt nevezel meg az azonosítójával, és az letöltési linkként utazik.
- A visszapattanások megállnak a postafióknál
- A kézbesítési jelentést feldolgozzuk, Message-ID alapján párosítjuk, felcímkézzük a beszélgetésen, és email.bounced webhookként küldjük tovább. A küldési sorba semmi sem ír vissza, így a GET /emails felől egy visszapattant üzenet továbbra is elküldöttként látszik.
- A szerkesztőből küldött levél nincs a GET /emails listában
- Az alkalmazás szerkesztőjéből küldött levél nem jelenik meg abban a listában, mert a szerkesztő nem ugyanazon a küldési útvonalon ír.
- Az OAuth-nál van hozzájárulás, hatókör nincs
- A kérést megmutatjuk, mielőtt megadnád, és a Csatlakoztatott alkalmazások alatt vissza is veheted, de a token az egész postafiókodat eléri, nem csak azt a részét, amelyet egy alkalmazás kért.
- Nincs kiadási munkafolyamat
- A kliens publikálása az előellenőrzés, a build és a bun publish kézi futtatása, így egy verzió akkor kerül fel az npm-re, amikor valaki lefuttatja, nem akkor, amikor a változás beérkezik.
Kézbesítés ellenőrzése
Minden kézbesítés aláírt,
és minden újrapróbálkozás viszi az azonosítóját.
Az aláírás egy HMAC-SHA-256 az időbélyegen, egy ponton és a nyers törzsön. A bájtokat úgy ellenőrizd, ahogy megérkeztek, mert az elemzés és az újraszerializálás átrendezi a kulcsokat, és elrontja.
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a- Visszajátszási ablak
- 300 másodperc, és a betartatása a fogadó dolga. Az SDK ellenőrzője alapértelmezetten ezt használja.
- Idempotency-Key
- A kulcsra és az API-kulcsodra együtt vonatkozó egyedi index foglalja le, így az időtúllépés utáni újrapróbálkozás az első eredményt adja vissza Idempotency-Replayed: true mellett, ahelyett hogy kétszer küldene.
- Újrapróbálkozások
- Öt próbálkozás: az esemény pillanatában, majd 1 perc, 5 perc, 25 perc és 2 óra múlva. Csak időtúllépést, elutasított kapcsolatot, 408-at, 425-öt, 429-et vagy 5xx-et ismétlünk meg.
- X-OpenEmail-Delivery
- Az esemény azonosítója egyszer jön létre, és minden próbálkozás ezt viszi, így ha egy fogadó kétszer látja ugyanazt az azonosítót, eldobhatja a másodikat ahelyett, hogy újra lépne rá.
Kinek szól
Egy postafiók.
Három út befelé.
Ingyenes cím a(z) openemail.uk címen, mögötte a levelezővel.
Ugyanaz a postafiók API-n, SDK-n és MCP-n át.
Készíts kulcsot.
Küldj valamit.
Full API, MCP and SDK access minden csomagban. Free mellé 50 AI actions a day is jár.