Sign in to fill these examples with your own keys. Sign in Start free trial

Receiving attachments

Bytes on webhook, message show, and a download URL.

Files on inbound mail are available in the dashboard, on the API, and on the webhook. Where you get the bytes depends on the channel.

Where the bytes are

Channel What you get
Message list (GET …/inbound_messages) Metadata only: filename, content_type, size
Message show (GET …/inbound_messages/:id) Metadata plus content_base64
JSON webhook Metadata plus content_base64
Download URL (GET …/attachments/:index) The raw file
Dashboard Download on each attachment in the message view

Attachments are numbered from 1, in the order they appear in the message.

PostShiba keeps the same file types it lets you send: images (including SVG and HEIC), PDF, Office and OpenDocument files, RTF, plain text, CSV, zip archives, contact cards, and calendar invites. Other files, such as programs, scripts, and HTML pages, are left out. Mail carrying a virus is refused before it reaches your inbox.

With retention off, bytes are removed from every channel once the webhook delivers: the show's content_base64 is null, the API download returns 410, and the dashboard shows the file name without a download link. Without a webhook, the bytes stay for 7 days. See Retention and storage.

Attachment fields

attachment.json
1{ 2 "filename": "photo.png", 3 "content_type": "image/png", 4 "size": 70, 5 "content_base64": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==" 6}

SendGrid Inbound Parse format

A sendgrid_parse webhook sends files as form fields attachment1, attachment2, and so on. attachment-info is JSON with each file's name and type. The email field holds the raw MIME.

Download steps are on Managing received emails. Full fields are on Inbound messages.

Next steps