Alles, was Sie brauchen, um eine E-Mail als signierten HTTP-Request zu empfangen.
Ihre Adresse
Jedes Konto bekommt eine dauerhafte Adresse in der Form inbox_ab12cd34ef@tempy.uk. Sie ist nicht änderbar und die einzige Adresse, die Ihren Webhook erreicht. Leiten Sie Mail von einem beliebigen Anbieter dorthin weiter oder geben Sie die Adresse direkt an.
inbox_7wgaav5mdb@tempy.uk
Das Payload
Ein HTTPS-POST pro E-Mail, gesendet als application/json. Der Body enthält die E-Mail-ID, from, to, subject, den Text- und HTML-Body, sämtliche Originalheader und ein Array der Anhänge. Ein einmal vorkommender Header ist ein String; ein wiederholter Header ist ein Array von Strings, in der Reihenfolge der Nachricht.
Jeder Request trägt einen X-Mailhook-Signature-Header: sha256= gefolgt vom HMAC-SHA256 des rohen Request-Body, mit Ihrem Signing-Secret als Schlüssel. Rechnen Sie über die empfangenen Bytes, vor jedem JSON-Parsing, und vergleichen Sie in konstanter Zeit. Weisen Sie alles zurück, was nicht passt.
Während einer Rotation wird die primäre Signatur weiterhin mit Ihrem aktuellen Secret berechnet, das neue kommt in X-Mailhook-Signature-Next. X-Mailhook-Secret-Version nennt die Version hinter dem primären Header. Neues Secret ausrollen, dann aktivieren — dazwischen bricht nichts.
Jedes 2xx gilt als zugestellt. Ein 5xx, ein 429 oder ein Netzwerkfehler wird bis zu fünfmal wiederholt, etwa 30 Sekunden, 1 Minute, 2 Minuten und 4 Minuten auseinander, mit Jitter. Ein 4xx außer 429 ist permanent und wird nie wiederholt. Ihr Endpoint hat 30 Sekunden zum Antworten.
5×+30s+1m+2m+4m30s
Anhänge
Dateien stecken nicht im JSON. Jeder Anhang trägt Dateiname, Content-Type, Größe und eine signierte URL, die ab Eingang der E-Mail 24 Stunden gültig bleibt. Holen Sie sich innerhalb dieses Fensters, was Sie brauchen — danach ist die Datei mit dem übrigen Inhalt weg.
filename · content_type · size · url · expires_at
Limits
Eine Nachricht darf inklusive Anhänge bis zu 20 MB groß sein; alles darüber wird schon an der Tür abgewiesen, damit der Absender einen Bounce bekommt, auf den er reagieren kann. Testanfragen und manuelle Wiederholungen sind pro Konto begrenzt, und eine Testanfrage trägt X-Mailhook-Test: true, damit Sie sie unterscheiden können.
20 MB · X-Mailhook-Test: true
Idempotenz
Eine Wiederholung sendet denselben Body erneut mit derselben E-Mail-ID. Nutzen Sie diese ID als Dedup-Schlüssel: Zwei POSTs mit einer ID sind dieselbe E-Mail, nicht zwei.