Przejdź do dokumentacji
API

Wypisz załączniki

Części jednej wiadomości wraz z ich bajtami, base64.

GETapi.openemail.uk/temp-mail/inboxes/{id}/messages/{messageId}/attachments

Uruchamia prawdziwe wywołanie na twojej przestrzeni roboczej, twoim własnym kluczem.

GET /temp-mail/inboxes/{id}/messages/{messageId}/attachments

Części jednej wiadomości wraz z ich bajtami, base64.

Token skrzynki

shell
export OE=https://api.openemail.ukexport INBOX="Authorization: Bearer oe_inbox_kQ8v…"

Każde wywołanie poniżej niesie token zwrócony przez POST /temp-mail/inboxes, w tym samym nagłówku Authorization: Bearer, którego używa klucz API. Sam adres nie autoryzuje niczego, a ten rozdział jest sednem tej funkcji, nie formalnością: adres jednorazowy trafia w ręce strony trzymanej na dystans w tej samej chwili, w której zostaje wydany.

Identyfikator w ścieżce musi wskazywać tę samą skrzynkę co token. Token sam w sobie wskazuje jedną skrzynkę, więc to zabezpieczenie na dwa sposoby, ale dzięki niemu klient, który pomyli dwie skrzynki, dostaje 404, zamiast po cichu czytać nie tę pocztę.

Przykład

Metadane i zawartość w jednej odpowiedzi, zamiast listowania plus pobierania każdej części osobno. Skrzynka na chwilę mieści garstkę małych plików, a dwie rundy po PDF to przy tym rozmiarze zły kompromis.

curl
curl "$OE/temp-mail/inboxes/tinb_9c2f41ab7d3e4c118a0f5d72/messages/tmail_4b81c07d2fa9418e93c6a13f/attachments" \  -H "$INBOX"
Odpowiedź
{  "object": "list",  "data": [    {      "object": "attachment",      "attachmentId": "tmail_4b81c07d2fa9418e93c6a13f-0",      "filename": "invoice.pdf",      "contentType": "application/pdf",      "size": 12345,      "content": "JVBERi0xLjQKJc…"    }  ]}

content jest null, gdy część przekroczyła 8 MB limitu przechowywania. To nie jest pusty plik, i właśnie dlatego metadane są serwowane tak czy inaczej, żeby klient mógł napisać „za duży, by go zachować”, zamiast pokazywać pobieranie pliku o zerowym rozmiarze.

Te bajty pochodzą od atakującego i zostały przyjęte od anonimowego nadawcy. Cokolwiek je renderuje, musi robić to poza originem twojej aplikacji.