Przejdź do dokumentacji
API

Skrzynki jednorazowe

Działający adres dla kogoś, kto żadnego nie ma: bez konta, bez klucza i znika tego samego dnia.

Czym jest skrzynka jednorazowa

Wywołujący prosi o adres na domenie należącej do tej instalacji, obserwuje go przez kilka minut, czyta, co przyjdzie, i porzuca. Istnieje dla kodu potwierdzającego, dla pytania „co ten formularz właściwie wysyła” i dla rejestracji, której nie chcesz wiązać z adresem, którego będziesz używać jeszcze za pięć lat.

  • Tylko odbiera i nic poza tym. Nie ma wysyłki: skrzynka nie ma tożsamości, jako którą mogłaby wysyłać, i żadne z tych dziewięciu wywołań nie wypuści wiadomości na łącze.
  • Dzierżawa trwa domyślnie 60 minut i można ją przedłużyć do 24 godzin, po godzinie naraz.
  • Mieści 50 wiadomości, liczonych w miarę napływu. Poczta trafiająca do pełnej skrzynki jest odrzucana, a nie kolejkowana, a usunięcie jednej nie kupuje miejsca na następną.
  • Z końcem dzierżawy poczta jest USUWANA, a nie ukrywana czy archiwizowana. Wiersz przeżywa ją o tydzień, żeby adresu nie dało się wydać ponownie, póki powolny nadawca wciąż na niego ponawia.
  • Nic z tego nie dotyka prawdziwej skrzynki. Wiadomość jednorazowa żyje we własnej tabeli i żadne zapytanie na tej ścieżce nie sięgnie do prawdziwej.

To te same wywołania, które wykonuje darmowe narzędzie na tej stronie, więc wszystko, co potrafi strona, potrafi twój kod. To API jest tu na wypadek, gdy strona nie wystarcza: na zestaw testów, który chce świeżego adresu na każde uruchomienie.

Adres nie jest poświadczeniem

Adres jednorazowy trafia do formularza rejestracji w chwili, w której zostaje wydany. Stamtąd wędruje w nagłówku To:, przez logi nadawcy, aż do CRM-a po drugiej stronie. Gdyby znajomość adresu wystarczała do czytania poczty, narzędzie z założenia ujawniałoby każdą wydaną skrzynkę, i to dokładnie tej stronie, którą wywołujący trzymał na dystans.

Dlatego utworzenie skrzynki zwraca drugą wartość: token, 32 losowe bajty jako oe_inbox_ plus 43 znaki base64url. Pojawia się w tej jednej odpowiedzi i w żadnej innej. Wiersz przechowuje tylko jego kluczowany skrót, więc nic go nie odzyska — ani zgłoszenie do supportu, ani zrzut bazy. Zgub token, a zgubiłeś skrzynkę, co jest poprawnym wynikiem dla poświadczenia czytającego czyjąś pocztę.

Cały przepływ
# 1. Mint one. This is the only response that carries a token.curl -s -X POST "$OE/temp-mail/inboxes" -H "Content-Type: application/json" -d '{}' # 2. Keep it, and read with it.export INBOX="Authorization: Bearer oe_inbox_kQ8v…"curl -s "$OE/temp-mail/inboxes/tinb_9c2f…/messages" -H "$INBOX"

Wyślij na któryś z tych adresów klucz API oe_live_ lub oe_test_, a zostanie odrzucony jako invalid_credential_type, a nie płaskim 401. Dwa rodzaje poświadczeń dzielą tu jeden host i jeden nagłówek, a „brak autoryzacji” zostawiałoby cię ze zgadywaniem, które z twoich było złe.

Dzierżawa i jej przedłużanie

Godzina, a nie dziesięć minut, od których gatunek wziął nazwę. Dziesięć wystarczy na kod potwierdzający i nie wystarcza na drugą połowę tego, do czego się tego używa: okres próbny, który napisze znowu następnego ranka, formularz wypełniony dwa razy, bo pierwsze podejście się przeterminowało. ttlMinutes przy tworzeniu prosi o coś innego, od 1 do 1440; liczba spoza tego zakresu jest odrzucana z 422, a nie po cichu korygowana, bo wygaśnięcie, o które nie prosiłeś, to takie, które już wliczyłeś w swoje plany.

POST /temp-mail/inboxes/{id}/extend dodaje godzinę do wygaśnięcia, a nie do teraz, więc wczesne przedłużenie nie marnuje czasu, który ci został. Działa 23 razy, a doba liczona od utworzenia skrzynki jest twardszym z tych dwóch limitów: dzierżawa, która już do niej sięga, nie ma nic do dokupienia, niezależnie od tego, jak mało przedłużeń zużyto. extensionsLeft w każdej odpowiedzi o skrzynce liczy oba, więc klient może wygasić przycisk; przy zerze wywołanie odpowiada 409 extension_limit.

Wygasła skrzynka przestaje uwierzytelniać w tej samej chwili, w której wygasa: jej token odpowiada 404, nie czekając na sprzątanie. To sprzątanie usuwa pocztę i chodzi w cogodzinnym cronie; DELETE /temp-mail/inboxes/{id} to to samo usunięcie na żądanie.

Pułapy

Wszystkie te wartości to zliczane wiersze, a nie ogranicznik ruchu. W tej bazie kodu nie ma ogranicznika, po który można by sięgnąć, a powiedzenie tego wprost jest bardziej przydatne niż sugerowanie obrony, której nie ma. Są postawione tam, gdzie byłaby szkoda: przy wydawaniu i przy przechowywaniu.

PułapWartośćCo się dzieje po jego osiągnięciu
Dzierżawa60 minut, przedłużalna do 24 godzin409 conflict_error / extension_limit
Wiadomości na skrzynkę50Dalsza poczta jest odrzucana w drzwiach. Nie powstaje żadne powiadomienie o niedoręczeniu, nic nie jest kolejkowane, a usunięcie wiadomości nie oddaje miejsca.
Wydane skrzynki6 na godzinę, 30 na dobę, na wywołującego429 rate_limit_error / too_many_inboxes
Przechowywana treść2 MBtruncated: true na wiadomości; reszty już nie ma.
Bajty załącznikapo 8 MBcontent jest null, a metadane zostają, co nie jest tym samym co pusty plik.

Limit wydawania liczy się względem kluczowanego skrótu adresu IP klienta, a zniszczona skrzynka wciąż się liczy, więc wyrzucenie jednej nie jest sposobem na kupienie następnej. Za cudzym proxy nagłówek forwarded można sfałszować, co jest znaną słabością tego limitu, a nie dziurą w poświadczeniu: nic tutaj nie autoryzuje na podstawie tej wartości.

Czego tu nie ma

Jeszcze niedostępne

Dowiadywanie się przez próbowanie jest gorsze niż usłyszenie wprost:

  • Żadnej wysyłki, w żadnej formie. Skrzynka jednorazowa nie ma połączenia, jako które mogłaby wysyłać, a dodanie go zrobiłoby z anonimowego, nieuwierzytelnionego endpointu otwarty przekaźnik.
  • Żadnej zmiany nazwy. Zmiana adresu oznacza utworzenie drugiej skrzynki: zmiana w miejscu zwalniałaby starą część lokalną w chwili kliknięcia, a potwierdzenie będące już w drodze trafiłoby do tego, komu ją potem wydano.
  • Żadnych reguł, filtrów, przekierowań, webhooków ani AI. spam to flaga na wiadomości i nic na jej podstawie nie zadziałało. Nic nie zostało odłożone, nic tutaj nie jest streszczane ani przetwarzane na osadzenia.
  • Żadnych powiadomień o niedoręczeniu. Poczta do domeny z puli, która nie wskazuje ani żywej skrzynki jednorazowej, ani adresu utworzonego przez operatora, jest po cichu odrzucana, i to celowo: publiczny generator adresów przyciąga ataki słownikowe, a pisanie raportu o doręczeniu na dowolną ścieżkę zwrotną, jaką atak poda, zrobiłoby z instalacji źródło backscatteru.
  • Brak skonfigurowanej domeny oznacza brak usługi. Gdy TEMP_MAIL_DOMAINS jest puste, GET /temp-mail/domains odpowiada pustą listą, a utworzenie skrzynki odpowiada 503 temp_mail_unavailable. Doręczenie przychodzące do domeny z puli nie zostało zaobserwowane od początku do końca na żywej domenie.

Konfiguracja domeny, jeśli prowadzisz instalację

Ta lista to konfiguracja: rozdawane jest to, co wymienia TEMP_MAIL_DOMAINS. Nic nie automatyzuje DNS-u, więc cztery z tych pięciu kroków to człowiek u rejestratora.

  1. Zarejestruj pod to domenę. Użyj takiej, którą jesteś gotów oddać w ręce obcych. Każdy adres na niej dzieli jej reputację, i dlatego też selektor rozrzuca nowe skrzynki po puli losowo, zamiast zapełniać pierwszą domenę.
  2. Dodaj ją w aplikacji w Ustawienia → Domeny. To tworzy tożsamość nadawczą i wypisuje rekordy DNS do opublikowania.
  3. Opublikuj u rejestratora rekordy MX, SPF, DKIM i TXT _openemail-challenge. Weryfikacja czyta żywy DNS i jest sprawdzana ponownie w cronie; oferowana jest tylko domena zweryfikowana.
  4. Dodaj zweryfikowaną domenę do TEMP_MAIL_DOMAINS na serwerze, po przecinku. Dopóki jej tam nie ma, jest zwykłą domeną w przestrzeni roboczej.
  5. Zostaw catch-all WŁĄCZONY. To dzięki niemu adres jednorazowy istnieje bez tworzenia go, bo poczta do dowolnej części lokalnej jest przyjmowana i odczytywana przed zwykłym wyszukaniem odbiorcy, więc dla domeny z puli nigdy nie powstaje wiersz adresu; pozostawienie catch-all włączonego zaczęłoby odkładać jednorazową pocztę do prawdziwej skrzynki.

Zastrzeżone części lokalne (postmaster, abuse, security i reszta z RFC 2142) nigdy nie mogą być jednorazowe i przechodzą do zwykłej skrzynki. Domena z puli, która pochłania własne zgłoszenia nadużyć, to domena, która przestaje móc gdziekolwiek doręczać. Adres, który sam utworzysz na domenie z puli, na przykład legal@ albo privacy@, zachowuje się tak samo: poczta do niego trafia do twojej skrzynki i nikomu nie zostanie wydany jako adres jednorazowy.

W tej sekcji