إنشاء صندوق وارد
يُصدر عنوانًا ويُعيد الرمز الذي يقرؤه. كل حقل اختياري، بما في ذلك جسم الطلب.
ينفّذ الاستدعاء الحقيقي على مساحة عملك، بمفتاحك أنت.
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 خارج 1 إلى 1440؛ و409 address_taken لجزء محلي محجوز أصلًا؛ و429 too_many_inboxes عند سقف الصكّ؛ و503 temp_mail_unavailable على تثبيت بلا أي نطاق في التجمع.
المعاملات
جسم الطلب
domainstring- واحد من `GET /temp-mail/domains`. أغفله فينتقي التجمع عشوائيًا بدل ملء النطاق الأول. فنطاق واحد يستقبل كل تسجيل مؤقت على الإنترنت يكسب السمعة المناسبة لذلك، وتلك السمعة يتشاركها كل عنوان عليه. والنطاق غير الموجود في التجمع يُرفَض بالاسم (422 `unknown_domain`) بدل أن يُستبدل بصمت، لأنك ستكون قد نسخت أصلًا العنوان الذي طلبته.
localPartstring- الجزء قبل @، إن أردت اختياره: من 3 إلى 32 محرفًا من الحروف والأرقام والنقاط والشرطات والشرطات السفلية، يبدأ وينتهي بحرف أو رقم. أضيق مما يسمح به RFC 5321، لأن هذه السلسلة تدخل في مسار URL وفي ترويسة `To:` وفي صفحة HTML. و`+` مستبعد، لأن العنونة الفرعية تُطوى عند الدخول، فـ `alice+bob` كان سيصير اسمًا لا يمكن الوصول إليك عبره فعلًا. والأسماء المحجوزة تجيب 409 `address_taken`، وهو يغطي حالتين: زائر آخر يحمله (أو حمله خلال الأسبوع الماضي، بينما العنوان ما زال خارج التداول)، ومالك النطاق أنشأه كعنوان حقيقي، وهو مرفوض تحت الرمز نفسه لأن البريد إليه يصله هو لا أنت. و`postmaster` وغيره من المحجوزات تجيب 422 `reserved_address`.
ttlMinutesnumber- كم ينبغي أن تكون مدة الحجز، بالدقائق، من 1 إلى 1440. القيمة الافتراضية 60. وأي شيء خارج ذلك المدى يجيب 422 `invalid_parameter` مسمّيًا الحقل بدل أن يُعدَّل بصمت. فستكون قد عرضت على أحدهم أصلًا وقت الانتهاء الذي طلبته. والـ 24 ساعة تُقاس من الإنشاء، فكل ساعة تؤخذ مقدمًا هي تمديد لا يمكن إنفاقه لاحقًا: فـ `ttlMinutes: 120` يعود بـ 22 منها، و1440 بلا شيء.
الاستجابة: temp_inbox، مع رمز
idstring- معرّف صندوق الوارد، `tinb_` وأربعة وعشرون محرفًا ست عشريًّا. يدخل في مسار كل نداء آخر، وهو ليس سرًّا. الرمز هو السر.
addressstring- العنوان الذي تسلّمه. والبريد الموجَّه إلى `that+anything@` يصله أيضًا، لأن العنونة الفرعية تُطوى قبل البحث.
domainstring- النطاق من التجمع الذي يقع العنوان عليه، مفصولًا حتى لا يضطر العميل إلى تحليل العنوان لعرضه.
createdAtstring- ISO 8601. وسقف الـ 24 ساعة يُقاس من هذا، لا من آخر تمديد.
expiresAtstring- ISO 8601. وبعده يتوقف الرمز عن الاستيثاق فورًا، وتحذف عملية الكنس البريد في تشغيلها التالي.
extensionsLeftnumber- كم مرة أخرى سيشتري `extend` وقتًا فعلًا، بحساب السقفين معًا: الـ 23 تمديدًا التي تسمح بها مدة الحجز، والـ 24 ساعة من `createdAt` التي لا يمكن تجاوزها أبدًا، أيهما بُلغ أولًا. فصندوق أُنشئ بـ `ttlMinutes: 1440` يُبلغ بـ 0 دون أن ينفق شيئًا. والصفر يعني أن النداء سيجيب 409، وهو ما ينبغي أن يعطّل العميل الزر بناءً عليه بدل اكتشافه بالضغط.
messageCountnumber- الرسائل التي قبلها هذا الصندوق، لا كم يظهر منها. ولا ينقص حين تحذف واحدة: فالسقف يحسب الوصول، فالحذف يحرر تخزينًا لا مكانًا.
messageLimitnumber- السقف، يُرسَل مع كل صندوق حتى يستطيع العميل أن يقول «ممتلئ» دون ترميز ثابتنا.
lastMessageAtstring | null- متى وصل البريد آخر مرة، ISO 8601، أو null إن لم يصل شيء. فالقيمة null على صندوق جديد تُقرأ بشكل مختلف تمامًا عن صندوق هادئ لدى من ينتظر منذ دقيقتين.
tokenstring- بيانات الاعتماد، في هذه الاستجابة وحدها. `oe_inbox_` و43 محرف base64url؛ ولا يخزّن الصف إلا تجزئة مفتاحية، فلا يمكن إعادة قراءته ولا استرجاعه.
كل استجابة صندوق أخرى (الجلب، التمديد) هي هذا الكائن بلا token.