# description
Provide the file ONE of four ways: `path` (a local file the SDK/CLI/MCP reads and streams as raw bytes), `url` (a remote file MailKite fetches and re-hosts), `content` (base64-encoded bytes), or — at the HTTP layer — the raw file bytes as the POST body with `?filename=`. `path`/raw-bytes go up as a real binary upload (like an S3/R2 PUT); `url`/`content` go up as JSON.

# properties.filename.description
The file's name, e.g. "invoice.pdf". Shown to recipients on download. Optional when it can be derived from `path` or `url`.

# properties.path.description
Local filesystem path to the file. Read client-side by the CLI, SDKs, and the local MCP server, then uploaded as raw bytes. Not available on the hosted MCP (no filesystem).

# properties.url.description
A remote http(s) URL. MailKite fetches it and re-hosts the bytes under your account. Max 25 MB.

# properties.content.description
The file bytes, base64-encoded. The lowest-common-denominator fallback when you can't send a path, URL, or raw bytes.

# properties.contentType.description
MIME type, e.g. "application/pdf". Defaults to application/octet-stream (or is inferred from the file extension / fetched response).

# properties.retentionDays.description
How long the file (and its signed URL) stays valid. One of 7, 30, 90, 365. Defaults to 7.