Geliştiriciler
Posta kutusu aldırmaz
onu kimin kullandığına.
Uygulamanın yaptığı her şeyi kodunuz da yapar: 68 yol üzerinde 104 belgelenmiş işlem, anahtarsız okuyabileceğiniz bir OpenAPI 3.1 belgesinin ardında. TypeScript istemcisi her derlemede bu belgeye uymak zorundadır.
MCP için yapıştırılacak bir anahtar gerekmez. İstemci, yetkilendirme sunucusunu uç noktadan bulur, kendini kaydeder ve oturum açmanız için sizi buraya yönlendirir.
104
belgelenmiş işlem
68
tek bir sunucu altında yol
116
SDK metodu, hepsini kapsıyor
20
webhook olayı, üç ailede
OpenAPI 3.1 belgesi GET /openapi.json adresinde ve okumak için anahtar gerekmez.
Yüzeyler
Üç kapı,
tek posta kutusu.
Bir çalışma alanı anahtarı, bir çağrının ne yapabileceğine ve hangi adreslerle gönderebileceğine karar verir. İptal etmek silmek değil güncellemektir, bu yüzden sonraki bir çağrıya anahtarın iptal edildiği söylenir.
Bir anahtar, en fazla 25 tam alan adı ve 50 tekil adres adına gönderim yapar. GET /ping, sahip olduğu kapsamları ve rolünün ona bıraktığı kapsamları geri okur.
Bir istemciyi uç noktaya yönlendirin ve oturum açın. Yapıştırılacak bir anahtar yok, çünkü istemci kendini kaydeder ve sizi buraya yönlendirir.
Araçlar, çağıranın ne yapabildiğine göre oluşturulur; yani okumayla sınırlı bir istemcide gönderme aracı bulunmaz. Yine de bir belirteç posta kutusunun tamamına erişir.
Bir https uç noktası kaydedin, posta kutusu oraya gönderim yapsın. Teslimatlar bir API çağrısı tarafından değil posta kutusunun kendisi tarafından tetiklenir; bu yüzden uygulamada mesaj yazmak ile API'ye istek göndermek aynı teslimatı doğurur.
Üç ailede 20 olay ve posta kutusu başına on uç nokta.
Eşitlik
İstemci geride kalamaz
API'den.
Eşitlik denetimi her derlemede OpenAPI belgesini okur ve sapma olduğunda başarısız olur: spesifikasyonda bulunmayan bir işleme işaret eden bir metot, metodu olmayan belgelenmiş bir işlem ya da işlemin gerektirdiğiyle uyuşmayan bir kapsam listesi. Neyi kanıtladığını yazdırır ve bugün bu, 104 belgelenmiş işlemin tamamını kapsayan 116 SDK metodu diyor.
Yapılandırma, istek ve çağrı aynı işlemin üç farklı yazılışıdır.
Ajanlar, API ve MCP
OpenEmail'in insanlar kadar yazılımlar tarafından da kullanılması amaçlanmıştır. Posta kutusu her iki durumda da aynıdır.
MCP sunucusu
Claude'u ya da herhangi bir MCP istemcisini posta kutunuza yönlendirin.
Üçüncü taraf istemciler için OAuth
YakındaPKCE ile kendi kendine istemci kaydı; böylece bir uygulama erişimi düzgünce isteyebilir.
Onay ve iptal burada; kapsam değil, bu yüzden bir belirteç uygulamanın istediği bölüme değil tüm posta kutunuza erişir.
REST API
Üretilebilir, kapsamlandırılabilir ve iptal edilebilir anahtarlara sahip, belgelenmiş bir HTTP API'si.
Hızlı başlangıç
Sıfırdan gönderilmiş bir mesaja.
Üç adım.
- 1
Bir anahtar üretin
Ayarlar, API anahtarları, sahibi olduğunuz bir posta kutusunda. Kapsamlarını seçin ve hangi kimlikle gönderebileceğini tüm alan adlarıyla ya da tek tek adreslerle daraltın. Gizli anahtar bir kez gösterilir, saklanan şey ise tek yönlü bir özettir.
GET /ping, anahtardaki kapsamları ve rolünün ona bıraktığı kapsamları döndürür. export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \ -H "Authorization: Bearer $OPENEMAIL_API_KEY" - 2
İstemciyi kurun
Bağımlılığı olmayan, ESM ve CommonJS olarak yayınlanan, anahtarı OPENEMAIL_API_KEY'den okuyan bir TypeScript istemcisi. JSON'u kendiniz göndermeyi tercih ediyorsanız atlayın, çünkü her uç nokta düz HTTP.
Node 18 ve üzeri, Workers, Deno, Bun ve tarayıcı. bun add @openemail/sdk - 3
Gönderin
Yanıt id'yi taşır. GET /emails/{id} onu çözer, /events alıcı bazında izi tutar, /tracking ise açılmaları ve tıklamaları.
Aynı Idempotency-Key ile yapılan bir yeniden deneme, ilk sonucu Idempotency-Replayed: true ile döndürür. 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)
Eksik
Sizin için henüz
yapmayacakları.
Bunun üzerine geliştirmeye başladıktan sonra değil, başlamadan önce bilinmeye değer beş şey.
- Yükleme uç noktası yok
- Satır içi ekler, toplam 5 MB sınırı altında base64 olarak gider. Daha büyük bir dosya, çalışma alanında zaten bulunan bir dosyanın id'si verilerek gönderilir ve indirme bağlantısı olarak iletilir.
- Geri dönenler posta kutusunda kalır
- Teslimat raporu ayrıştırılır, Message-ID ile eşleştirilir, konuşmada etiketlenir ve email.bounced webhook'u olarak iletilir. Hiçbir şey gönderim satırına geri yazmaz, dolayısıyla GET /emails üzerinden geri dönen bir mesaj hâlâ gönderilmiş görünür.
- Yazma penceresi postaları GET /emails içinde değil
- Uygulamadaki yazma penceresinden gönderilen posta bu listede görünmez, çünkü yazma penceresi aynı gönderim yolundan yazmaz.
- OAuth'ta onay var, kapsam yok
- Bir istek, onaylanmadan önce gösterilir ve Bağlı uygulamalar onu geri alır, ancak bir belirteç, uygulamanın istediği bölüme değil posta kutunuzun tamamına erişir.
- Sürüm iş akışı yok
- İstemciyi yayınlamak; ön kontrolün, derlemenin ve bun publish'in elle çalıştırılmasıdır; dolayısıyla bir sürüm npm'e, değişiklik girdiğinde değil birisi bunu çalıştırdığında ulaşır.
Bir teslimatı doğrulamak
Her teslimat imzalıdır,
ve her yeniden deneme kendi id'sini taşır.
İmza; zaman damgası, bir nokta ve ham gövde üzerinde hesaplanan bir HMAC-SHA-256'dır. Baytları geldikleri hâliyle doğrulayın, çünkü ayrıştırıp yeniden serileştirmek anahtarların sırasını değiştirir ve imzayı bozar.
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a- Tekrar penceresi
- 300 saniye ve bunu uygulamak alıcının işi. SDK'daki doğrulayıcı varsayılan olarak bunu kullanır.
- Idempotency-Key
- Anahtar ile API anahtarınızın birlikte oluşturduğu benzersiz bir indekse karşı alınır; böylece zaman aşımından sonraki bir yeniden deneme, iki kez göndermek yerine ilk sonucu Idempotency-Replayed: true ile döndürür.
- Yeniden denemeler
- Beş deneme: olay gerçekleştiğinde, ardından 1 dakika, 5 dakika, 25 dakika ve 2 saat sonra. Yalnızca zaman aşımı, reddedilen bağlantı, 408, 425, 429 veya bir 5xx tekrarlanır.
- X-OpenEmail-Delivery
- Olay id'si bir kez üretilir ve her deneme onu taşır; böylece aynı id'yi iki kez gören bir alıcı, ikincisine yeniden işlem yapmak yerine onu atabilir.
Kimler için
Tek bir posta kutusu.
Üç giriş yolu.
openemail.uk üzerinde ücretsiz bir adres, arkasında istemci.
Aynı posta kutusu; API, SDK ve MCP üzerinden.
Bir anahtar üretin.
Bir şey gönderin.
Full API, MCP and SDK access her planda var. Free beraberinde 50 AI actions a day getirir.