توسعه‌دهندگان

صندوق پستی اهمیتی نمی‌دهد
چه کسی پشت فرمان است.

هر کاری که اپ می‌کند، کد شما هم می‌کند: 104 عملیات مستندشده در 68 مسیر، پشت یک سند OpenAPI 3.1 که بدون کلید می‌خوانیدش. کلاینت TypeScript در هر بیلد به همان سند پایبند نگه داشته می‌شود.

در هر کلاینت MCP جای‌گذاری کنید. خودش را ثبت می‌کند.
{ "mcpServers": {
    "openemail": {
      "url": "https://api.openemail.uk/mcp"
    } } }

MCP کلیدی برای جای‌گذاری نمی‌خواهد. کلاینت سرور مجوزدهی را از روی نقطه پایانی پیدا می‌کند، خودش را ثبت می‌کند و شما را برای ورود به اینجا می‌فرستد.

104

عملیات مستندشده

68

مسیر زیر یک میزبان

116

متد SDK، پوشش‌دهنده‌ی همه‌ی آنها

20

رویداد وبهوک، در سه خانواده

سند OpenAPI 3.1 در GET /openapi.json است، و خواندنش کلید نمی‌خواهد.

سطوح

سه در،
یک صندوق پستی.

REST API

کلید فضای کاری تعیین می‌کند یک فراخوانی چه می‌تواند بکند و از طرف کدام نشانی‌ها می‌تواند بفرستد. باطل کردن یک به‌روزرسانی است نه یک حذف، پس به فراخوانی بعدی گفته می‌شود که کلید باطل شده است.

/threads?query=invoice
/emails
emails:sendthreads:readwebhooks:write

یک کلید از طرف تا 25 دامنه‌ی کامل و 50 نشانی تکی می‌فرستد. GET /ping دامنه‌های دسترسی‌ای که دارد و آنهایی که نقشش برایش گذاشته را بازمی‌خواند.

سرور MCP

یک کلاینت را به نقطه پایانی بسپارید و وارد شوید. کلیدی برای جای‌گذاری نیست، چون کلاینت خودش را ثبت می‌کند و شما را به اینجا می‌فرستد.

listThreads
threads:reademails:sendlabels:write

ابزارها از روی آنچه فراخوان مجاز است بکند ساخته می‌شوند، پس کلاینتی که به خواندن محدود شده ابزار ارسال در خود ندارد. توکن همچنان به کل صندوق پستی می‌رسد.

وبهوک‌ها

یک نقطه پایانی https ثبت کنید و صندوق پستی به آن ارسال می‌کند. تحویل‌ها را خود صندوق پستی راه می‌اندازد نه یک فراخوانی API، پس نوشتن در اپ و ارسال به API هر دو یکی را می‌سازند.

/webhooks
email.receivedemail.sentemail.failedemail.openeddomain.verifiedsuppression.added

20 رویداد در سه خانواده، و ده نقطه پایانی برای هر صندوق پستی.

هم‌ترازی

کلاینت نمی‌تواند از
API عقب بماند.

بررسی هم‌ترازی در هر بیلد سند OpenAPI را می‌خواند و با هر واگرایی شکست می‌خورد: متدی که به عملیاتی اشاره می‌کند که در مشخصات نیست، عملیاتی مستندشده بدون متد، یا فهرست دامنه‌ی دسترسی‌ای که با نیاز آن عملیات نمی‌خواند. آنچه را ثابت کرده چاپ می‌کند، و امروز این یعنی 116 متد SDK روی هر 104 عملیات مستندشده.

یک ارسال، سه شکل

پیکربندی، درخواست و فراخوانی یک عملیات‌اند، نوشته‌شده به سه شکل.

MCPAPISDK
{ "mcpServers": {
"openemail": {
"url": "https://api.openemail.uk/mcp"
} } }
01 · 5 امکان، 1 تای دیگر در راه

عامل‌ها، API و MCP

قرار است OpenEmail را نرم‌افزار هم مثل آدم‌ها بگرداند. صندوق پستی در هر دو حالت یکی است.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

سرور MCP

Claude، یا هر کلاینت MCP دیگری، را به صندوق پستی‌تان بسپارید.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

OAuth برای کلاینت‌های شخص ثالث

به‌زودی

ثبت کلاینت به‌صورت خودخدمت با PKCE، تا یک برنامه بتواند درست درخواست دسترسی کند.

رضایت و لغو دسترسی هست؛ دامنه دسترسی نیست، پس یک توکن به جای بخشی که برنامه خواسته، به تمام صندوق پستی شما می‌رسد.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

REST API

یک API روی HTTP و مستند، با کلیدهایی که می‌شود صادر، محدود و باطلشان کرد.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

SDKهای نوع‌دار

اول یک کلاینت TypeScript، بعد بقیه.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

وب‌هوک‌ها

به‌جای آنکه مجبور باشید مدام سر بزنید، رسیدن نامه را به نقطه پایانی شما خبر می‌دهد.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

شروع سریع

از هیچ تا یک پیام ارسال‌شده.
سه قدم.

  1. 1

    کلیدی بسازید

    تنظیمات، کلیدهای API، روی صندوق پستی‌ای که مال خودتان است. دامنه‌های دسترسی‌اش را برگزینید، و آنچه را می‌تواند از طرفش بفرستد به دامنه‌های کامل یا نشانی‌های تکی محدود کنید. راز یک بار نشان داده می‌شود و آنچه ذخیره می‌شود یک هش یک‌طرفه است.

    GET /ping با دامنه‌های دسترسی روی کلید و دامنه‌هایی که نقشش برایش گذاشته پاسخ می‌دهد.
    export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \  -H "Authorization: Bearer $OPENEMAIL_API_KEY"
  2. 2

    کلاینت را نصب کنید

    کلاینتی TypeScript بدون وابستگی، منتشرشده به شکل ESM و CommonJS، که کلید را از OPENEMAIL_API_KEY می‌خواند. اگر ترجیح می‌دهید خودتان JSON بفرستید از آن بگذرید، چون هر نقطه پایانی HTTP ساده است.

    Node 18 به بالا، Workers، Deno، Bun و مرورگر.
    bun add @openemail/sdk
  3. 3

    ارسال

    پاسخ شناسه را با خود دارد. GET /emails/{id} آن را باز می‌کند، /events رد هر گیرنده را دارد و /tracking بازشدن‌ها و کلیک‌ها را.

    تلاش دوباره با همان Idempotency-Key نتیجه‌ی اول را با Idempotency-Replayed: true برمی‌گرداند.
    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)

غایب

کاری که هنوز برایتان
انجام نمی‌دهد.

پنج چیز که ارزش دارد پیش از ساختن روی این بدانید، نه بعد از آن.

بدون نقطه پایانی آپلود
پیوست‌های درون‌خطی به شکل base64 و زیر سقف مجموع 5 مگابایت می‌روند. فایل بزرگ‌تر با نام بردن از فایلی که از پیش در فضای کاری است، با شناسه‌اش، فرستاده می‌شود و به شکل یک پیوند دانلود می‌رود.
برگشتی‌ها در صندوق پستی متوقف می‌شوند
گزارش تحویل تجزیه می‌شود، با Message-ID تطبیق می‌خورد، روی رشته برچسب می‌گیرد و به شکل وبهوک email.bounced فرستاده می‌شود. چیزی در ردیف ارسال بازنویسی نمی‌شود، پس از راه GET /emails یک پیام برگشتی همچنان ارسال‌شده خوانده می‌شود.
نامه‌ی نگارشگر در GET /emails نیست
نامه‌ای که از نگارشگر اپ فرستاده می‌شود در آن فهرست نمی‌آید، چون نگارشگر از همان مسیر ارسال نمی‌نویسد.
OAuth رضایت دارد، نه دامنه‌ی دسترسی
درخواست پیش از تأیید نشان داده می‌شود و برنامه‌های متصل آن را پس می‌گیرد، اما توکن به کل صندوق پستی شما می‌رسد، نه به بخشی که برنامه خواسته بود.
بدون گردش‌کار انتشار
انتشار کلاینت اجرای دستی preflight، بیلد و bun publish است، پس یک نسخه وقتی به npm می‌رسد که کسی آن را اجرا کند، نه وقتی که تغییر ثبت شود.

راستی‌آزمایی یک تحویل

هر تحویل امضا می‌شود،
و هر تلاش دوباره شناسه‌اش را با خود دارد.

امضا یک HMAC-SHA-256 روی مهر زمانی، یک نقطه و بدنه‌ی خام است. با همان بایت‌ها به شکلی که رسیده‌اند بسنجیدش، چون تجزیه و دوباره‌سریال‌کردن ترتیب کلیدها را به هم می‌زند و امضا را می‌شکند.

هدرهای روی هر تحویل
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a
پنجره‌ی بازپخش
300 ثانیه، و اعمالش کار گیرنده است. راستی‌آزمای درون SDK به‌صورت پیش‌فرض همین را می‌گیرد.
Idempotency-Key
روی یک ایندکس یکتا از این کلید و کلید API شما با هم ثبت می‌شود، پس تلاش دوباره پس از یک وقفه‌ی زمانی نتیجه‌ی اول را با Idempotency-Replayed: true برمی‌گرداند به جای اینکه دو بار بفرستد.
تلاش‌های دوباره
پنج تلاش: هم‌زمان با رخ دادن رویداد، سپس پس از 1 دقیقه، 5، 25 و 2 ساعت. فقط وقفه‌ی زمانی، اتصال ردشده، 408، 425، 429 یا یک 5xx تکرار می‌شود.
X-OpenEmail-Delivery
شناسه‌ی رویداد یک بار ساخته می‌شود و هر تلاش آن را با خود دارد، پس گیرنده‌ای که یک شناسه را دو بار ببیند می‌تواند دومی را کنار بگذارد به جای اینکه دوباره روی آن عمل کند.

برای چه کسی است

یک صندوق پستی.
سه راه ورود.

افراد

یک نشانی رایگان روی openemail.uk، با کلاینت پشت آن.

acme.comacme.devstudio.acme.com
hello@acme.comتحویل شد
billing@acme.comتحویل شد
oct-2026-signup@acme.comتحویل شد
anything-at-all@acme.comتحویل شد
کسب‌وکارها

نشانی برای همه، بدون شمردن اعضا به‌عنوان کاربر.

[email protected]اشتراکی
SSarahAAliJJamieNNadia
صندلی‌ای اضافه نشد. صورت‌حساب تکان نمی‌خورد.
توسعه‌دهندگان

همان صندوق پستی روی API، SDK و MCP.

/threads?query=invoice
{ "threads": 12 }
همان صندوق پستی، چه آدمی دستش باشد چه برنامه‌ای.

کلیدی بسازید.
چیزی بفرستید.

Full API, MCP and SDK access در همه‌ی طرح‌ها. Free همراه خود 50 AI actions a day را دارد.

شروع سریع API را بخوانید

صندوق ورودی شما،
با شرایط خودتان.

زیرساخت ایمیل برای کسب‌وکارها، هوش مصنوعی، عامل‌ها و ایمیل شخصی. ساخته‌شده برای مقیاس، حریم خصوصی و کنترل. هر چه ایمیل باید از روز نخست می‌داشت.

OpenEmail

زیرساخت ایمیل برای کسب‌وکارها، هوش مصنوعی، عامل‌ها و ایمیل شخصی. ساخته‌شده برای مقیاس، حریم خصوصی و کنترل. هر چه ایمیل باید از روز نخست می‌داشت.

© 2026 OpenEmail. همه حقوق محفوظ است.
وضعیت