API ของ inboxsink
กล่องจดหมายชั่วคราวที่สั่งงานด้วยโค้ดได้ ใช้ทดสอบขั้นตอนสมัครสมาชิกโดยไม่ต้องพึ่งกล่องจดหมายจริง ห้าเส้นทาง ฐานเดียวที่ https://inboxsink.com รับส่งเป็น JSON
เส้นทางที่เปลี่ยนเกมคือ wait ซึ่งจะรอจนกว่าข้อความจะมาถึง หากไม่มีมัน การทดสอบแบบครบวงจรต้องเดาด้วย sleep และจะไม่เสถียรทันทีที่คิวการส่งล่าช้า
หนึ่งพันครั้งต่อเดือน ไม่ต้องใช้บัตร มากพอจะต่อเข้ากับชุดทดสอบของคุณและดูว่ามันอยู่ได้ไหม
ต่อมา เมื่อการทดสอบของคุณเริ่มถูกปฏิเสธ โดเมนของคุณเองไม่ถูกเผยแพร่ที่ใดเลย จึงไม่ตกไปอยู่ในบัญชีดำ — เดือนละ 29 €
ไลบรารี JavaScript
แพ็กเกจที่ไม่มีการพึ่งพาใด ๆ สำหรับ Node 18 ขึ้นไป โค้ดอยู่บน GitHub
npm i inboxsink
import { InboxSink } from 'inboxsink'; const sink = new InboxSink(process.env.INBOXSINK_API_KEY); const inbox = await sink.createInbox(); const code = await sink.waitForOtp(inbox.id); // '204815'
waitForOtp จะโยนข้อผิดพลาดแทนการคืนค่า null เมื่อไม่มีรหัสมาถึง เพราะการทดสอบควรล้มเหลวอย่างชัดเจน ไม่ใช่กรอกช่องว่างเงียบ ๆ
การยืนยันตัวตน
ใส่ส่วนหัว Authorization ในทุกการเรียก สร้างคีย์ได้จากแดชบอร์ด และคีย์จะขึ้นต้นด้วย ibsk_
curl -H "Authorization: Bearer ibsk_…" \
https://inboxsink.com/v1/domains
คีย์แบบอ่านได้จะแสดงเฉพาะตอนสร้างเท่านั้น หลังจากนั้นจะเห็นเพียงคำนำหน้า เราเก็บไว้แค่ค่าแฮชของมัน
สร้างกล่องจดหมาย
พารามิเตอร์ทุกตัวเป็นทางเลือก: domain (ค่าเริ่มต้นคือโดเมนสุ่มจากกลุ่ม), prefix (ค่าเริ่มต้นเป็นแบบสุ่ม), ttl_seconds (ตั้งแต่ 60 วินาทีถึง 30 วัน)
curl -X POST https://inboxsink.com/v1/inboxes \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"ttl_seconds": 900}' → 201 { "id": "42", "address": "9f2c1a@mailhusk.com", "expires_at": "2026-09-01T15:12:00Z" }
กล่องที่สร้างผ่าน API เป็นแบบส่วนตัว มีเพียงคีย์ที่สร้างมันเท่านั้นที่อ่านได้
รอข้อความ
รอจนกว่าจะมีข้อความเข้ามา แล้วตอบกลับทันที timeout เป็นมิลลิวินาที (ค่าเริ่มต้น 30 000 สูงสุด 120 000), since เพื่อรับเฉพาะข้อความหลังตัวระบุที่กำหนด
ตอบ 204 โดยไม่มีเนื้อหาหากหมดเวลาแล้วยังไม่มีข้อความ นี่ไม่ใช่ข้อผิดพลาด แต่เป็นคำตอบปกติของ «ยังไม่มีอะไรเข้ามา»
curl -H "Authorization: Bearer $KEY" \ "https://inboxsink.com/v1/inboxes/42/wait?timeout=45000" → 200 { "message": { "id": "913", "from": "no-reply@acme.com", "subject": "…", "otp": "204815", "link": "https://acme.com/confirm/9f3a" } }
otp และ link ถูกดึงออกมาให้แล้ว รหัสจะถูกรายงานก็ต่อเมื่อข้อความประกาศไว้จริง («รหัส», «ยืนยัน», «เข้าสู่ระบบ»…) ยอดใบแจ้งหนี้หรือปี พ.ศ. จะไม่ถูกเข้าใจผิดว่าเป็นรหัส
แสดงรายการข้อความ
รับ since และ limit (ค่าเริ่มต้น 50 สูงสุด 200) คืนค่าเป็นบทสรุป ไม่รวมเนื้อความ
อ่านข้อความ
ข้อความทั้งฉบับ: text, html, headers และรายการไฟล์แนบ
ลบกล่องจดหมาย
ลบกล่องและข้อความทั้งหมดทันที ตอบกลับ 204
ข้อผิดพลาด
| 204 | ไม่มีเนื้อหา — สำหรับ wait คือหมดเวลาโดยไม่มีข้อความ |
| 400 | พารามิเตอร์ไม่ถูกต้อง |
| 401 | ไม่มีคีย์ คีย์ไม่รู้จัก หรือถูกเพิกถอน |
| 403 | กล่องนี้เป็นของคีย์อื่น |
| 404 | ไม่มีกล่องหรือข้อความ หรือหมดอายุแล้ว |
| 429 | เรียกใช้บ่อยเกินไป |
ข้อจำกัดและอายุการใช้งาน
กล่องจากกลุ่มสาธารณะมีอายุหนึ่งชั่วโมง ส่วนกล่องที่สร้างผ่าน API จะเป็นไปตาม ttl_seconds ของตัวเอง สูงสุดสามสิบวัน เมื่อครบกำหนด กล่องและข้อความจะถูกลบ ไม่มีคลังเก็บให้ดึงกลับมาภายหลัง
ข้อความที่ใหญ่เกินสิบเมกะไบต์จะถูกปฏิเสธตั้งแต่ตอนรับ ที่อยู่บนโดเมนที่ไม่รู้จักจะถูกปฏิเสธระหว่างเซสชัน SMTP โดยไม่สร้างอีเมลตีกลับ
กล่องเหล่านี้ส่งอีเมลไม่ได้ และนี่เป็นความตั้งใจ เพราะข้อความที่ส่งจากโดเมนชั่วคราวจะไปไม่ถึงที่ใดเลย