ساخت یک صندوق
نشانیای صادر میکند و توکنی را برمیگرداند که آن را میخواند. همهٔ فیلدها اختیاریاند، حتی خود بدنه.
فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا میکند.
POST /temp-mail/inboxes
نشانیای صادر میکند و توکنی را برمیگرداند که آن را میخواند. همهٔ فیلدها اختیاریاند، حتی خود بدنه.
بدون اعتبارنامه
export OE=https://api.openemail.ukاصلاً هدر Authorization نفرستید. این تنها منبعی روی این API است که بدون آن پاسخ میدهد. بالاتر از بررسی کلید ثبت شده نه اینکه اسکوپی بگیرد، چون آنچه پیشنهاد میشود نشانیای است برای کسی که نشانی ندارد، و اول کلیدخواستن آن را به فرم جذب مشتری در جامهٔ یک ابزار بدل میکرد.
نمونه
بدنهٔ خالی معتبر است و حالت رایج همان است: بخش محلی تولیدشده روی دامنهای برگزیده از استخر، با مهلتی یکساعته.
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.