پرش به مستندات
API

ساخت یک صندوق

نشانی‌ای صادر می‌کند و توکنی را برمی‌گرداند که آن را می‌خواند. همهٔ فیلدها اختیاری‌اند، حتی خود بدنه.

POSTapi.openemail.uk/temp-mail/inboxes

فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا می‌کند.

POST /temp-mail/inboxes

نشانی‌ای صادر می‌کند و توکنی را برمی‌گرداند که آن را می‌خواند. همهٔ فیلدها اختیاری‌اند، حتی خود بدنه.

بدون اعتبارنامه

shell
export OE=https://api.openemail.uk

اصلاً هدر Authorization نفرستید. این تنها منبعی روی این API است که بدون آن پاسخ می‌دهد. بالاتر از بررسی کلید ثبت شده نه اینکه اسکوپی بگیرد، چون آنچه پیشنهاد می‌شود نشانی‌ای است برای کسی که نشانی ندارد، و اول کلیدخواستن آن را به فرم جذب مشتری در جامهٔ یک ابزار بدل می‌کرد.

نمونه

بدنهٔ خالی معتبر است و حالت رایج همان است: بخش محلی تولیدشده روی دامنه‌ای برگزیده از استخر، با مهلتی یک‌ساعته.

curl
curl -X POST "$OE/temp-mail/inboxes" -H "Content-Type: application/json" \  -d '{ "localPart": "octopus-signup", "ttlMinutes": 120 }'
پاسخ
{  "object": "temp_inbox",  "id": "tinb_9c2f41ab7d3e4c118a0f5d72",  "address": "[email protected]",  "domain": "freemailaddress.com",  "createdAt": "2026-09-01T10:00:00.000Z",  "expiresAt": "2026-09-01T12:00:00.000Z",  "extensionsLeft": 22,  "messageCount": 0,  "messageLimit": 50,  "lastMessageAt": null,  "token": "oe_inbox_kQ8v…"}

201، و تنها پاسخی در کل این API که token با خود دارد. پیش از هر کار دیگری با آن نشانی، ذخیره‌اش کنید.

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

هر چه بتواند رد شود به نام رد می‌شود نه اینکه تنظیم شود: 422 unknown_domain، invalid_address، reserved_address، یا invalid_parameter برای ttlMinutes بیرون از ۱ تا ۱۴۴۰؛ 409 address_taken برای بخش محلی‌ای که پیش‌تر گرفته شده؛ 429 too_many_inboxes روی سقف ساختن؛ 503 temp_mail_unavailable روی نصبی که هیچ دامنهٔ استخری ندارد.

پارامترها

بدنه

domainstring
یکی از `GET /temp-mail/domains`. آن را نیاورید و استخر به‌جای پرکردن نخستین دامنه به‌صورت تصادفی انتخاب می‌کند. دامنه‌ای که هر ثبت‌نام دورانداختنی اینترنت را دریافت کند اعتباری درخور همان به دست می‌آورد، و آن اعتبار میان همهٔ نشانی‌های روی آن مشترک است. دامنه‌ای که در استخر نیست به نام رد می‌شود (422 `unknown_domain`) نه اینکه بی‌صدا جایگزین شود، چون شما از پیش نشانی‌ای را که خواسته بودید کپی کرده‌اید.
localPartstring
بخش پیش از @، اگر می‌خواهید خودتان برگزینیدش: ۳ تا ۳۲ نویسه از حروف، ارقام، نقطه، خط تیره و زیرخط، که با حرف یا رقم آغاز و پایان یابد. تنگ‌تر از آنچه RFC 5321 اجازه می‌دهد، چون این رشته به مسیر یک URL، یک هدر `To:` و یک صفحهٔ HTML می‌رود. `+` کنار گذاشته شده، چون زیرنشانی‌دهی هنگام ورود جمع می‌شود و بنابراین `alice+bob` نامی می‌بود که در عمل نمی‌شد از راه آن به شما رسید. نام‌های گرفته‌شده با 409 `address_taken` پاسخ می‌دهند، که دو حالت را پوشش می‌دهد: بازدیدکننده‌ای دیگر آن را دارد (یا در هفتهٔ گذشته داشته، تا وقتی نشانی هنوز از گردش خارج است)، و مالک دامنه آن را به عنوان نشانی واقعی ساخته است، که زیر همان کد رد می‌شود چون نامه به آن به او می‌رسد و هرگز به شما. `postmaster` و بقیهٔ نام‌های رزروشده با 422 `reserved_address` پاسخ می‌دهند.
ttlMinutesnumber
اینکه مهلت چقدر باشد، به دقیقه، از ۱ تا ۱۴۴۰. پیش‌فرض ۶۰ است. هر چیزی بیرون از آن بازه با 422 `invalid_parameter` پاسخ می‌دهد و نام فیلد را می‌برد، نه اینکه بی‌صدا تنظیم شود. شما از پیش انقضایی را که خواسته بودید به کسی نشان داده‌اید. آن ۲۴ ساعت از زمان ساخت اندازه گرفته می‌شود، پس هر ساعتی که از ابتدا برداشته شود تمدیدی است که بعداً نمی‌توان خرجش کرد: `ttlMinutes: 120` با ۲۲ تمدید برمی‌گردد، و 1440 با هیچ.

پاسخ: temp_inbox، به‌علاوهٔ یک توکن

idstring
شناسهٔ صندوق، `tinb_` و بیست‌وچهار نویسهٔ هگز. در مسیر هر فراخوانی دیگری می‌رود، و راز نیست. توکن راز است.
addressstring
نشانی‌ای که باید واگذار شود. نامهٔ نشانی‌شده به `that+anything@` هم به آن می‌رسد، چون زیرنشانی‌دهی پیش از جست‌وجو جمع می‌شود.
domainstring
دامنهٔ استخری که نشانی روی آن است، جدا آورده شده تا کلاینت برای نمایشش ناچار نباشد نشانی را پارس کند.
createdAtstring
ISO-8601. سقف ۲۴ ساعته از همین اندازه گرفته می‌شود، نه از آخرین تمدید.
expiresAtstring
ISO-8601. پس از آن توکن بی‌درنگ از احراز هویت می‌افتد، و جاروب در اجرای بعدی‌اش نامه‌ها را حذف می‌کند.
extensionsLeftnumber
اینکه `extend` چند بار دیگر واقعاً زمان می‌خرد، با شمردن هر دو سقف: ۲۳ تمدیدی که یک مهلت اجازه می‌دهد، و ۲۴ ساعتی از `createdAt` که هرگز نمی‌تواند از آن بگذرد، هر کدام زودتر برسد. صندوقی که با `ttlMinutes: 1440` ساخته شده بی‌آنکه چیزی خرج کرده باشد 0 گزارش می‌کند. صفر یعنی فراخوانی 409 پاسخ می‌دهد، و کلاینت باید بر همین اساس دکمه را خاکستری کند نه اینکه با فشاردادنش کشفش کند.
messageCountnumber
پیام‌هایی که این صندوق پذیرفته است، نه تعدادی که نشان داده می‌شود. با حذف یکی پایین نمی‌آید: سقف ورودی‌ها را می‌شمارد، پس حذف فضای ذخیره‌سازی را آزاد می‌کند اما جا را نه.
messageLimitnumber
سقف، که روی هر صندوق فرستاده می‌شود تا کلاینت بتواند بدون هاردکدکردن ثابت ما بگوید «پر است».
lastMessageAtstring | null
آخرین باری که نامه رسیده، ISO-8601، یا null اگر نامه‌ای نرسیده باشد. برای کسی که دو دقیقه منتظر مانده، null روی صندوقی تازه خیلی متفاوت از صندوقی ساکت خوانده می‌شود.
tokenstring
اعتبارنامه، روی همین پاسخ و نه هیچ پاسخ دیگری. `oe_inbox_` و ۴۳ نویسهٔ base64url؛ سطر تنها یک هش کلیددار ذخیره می‌کند، پس نه می‌توان دوباره خواندش و نه بازیابی‌اش کرد.

هر پاسخ صندوق دیگری (دریافت، تمدید) همین شیء است بدون token.