CLI reference
Email commands
sendmock email attachments
Download one attachment.
sendmock email attachments <emailId> <attachmentIndex>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| <attachmentIndex>required | integer | Position of the file in the email's attachments, starting at 0.Example: 0 |
Example
sendmock email attachments 01JB7T9Q2R5W8X3Y6Z1A4B7C9D 0
Output with --json: file (application/octet-stream). Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/{emailId}/attachments/{attachmentIndex} - MCP tool
sendmock://emails/{emailId}/attachments/{attachmentIndex}- In the app
- Mail > open email > Attachments
sendmock email check html
HTML and CSS support across email clients.
sendmock email check <emailId> html
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email check 01JB7T9Q2R5W8X3Y6Z1A4B7C9D html
Output with --json: HtmlCheckReport. Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/html-check - MCP tool
sendmock_email_check- In the app
- Mail > open email > Checks
sendmock email check links
Check every link in the message.
sendmock email check <emailId> links
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email check 01JB7T9Q2R5W8X3Y6Z1A4B7C9D links
Output with --json: LinkCheckResult[]. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/{emailId}/link-check - MCP tool
sendmock_email_check- In the app
- Mail > open email > Checks
sendmock email check spam
Score the message with the spam rules.
sendmock email check <emailId> spam
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email check 01JB7T9Q2R5W8X3Y6Z1A4B7C9D spam
Output with --json: SpamCheckReport. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/{emailId}/spam-check - MCP tool
sendmock_email_check- In the app
- Mail > open email > Checks
sendmock email check unsubscribe
List-Unsubscribe and one-click unsubscribe checks.
sendmock email check <emailId> unsubscribe
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email check 01JB7T9Q2R5W8X3Y6Z1A4B7C9D unsubscribe
Output with --json: ListUnsubscribeReport. Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/list-unsubscribe - MCP tool
sendmock_email_check- In the app
- Mail > open email > Headers
sendmock email click
Record a click on one of the email's links and fire email.clicked.
sendmock email click <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --url <url>required | string | The link that was clicked; one of the email's links (extracted.links).Example: https://app.test/verify?token=abc123 |
| --source <source> | string | Who clicked it: ui (a link in the preview), manual (Simulate click) or api (a script). Defaults to api.One of: ui, manual, apiExample: api |
| --user-agent <user-agent> | string | The browser or client that clicked, kept in the click history. The UI sends its own.Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Example
sendmock email click 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --url 'https://app.test/verify?token=abc123' --source api --user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5)'
Output with --json: nothing. Exit codes: 0, 1, 2, 3.
- API
- POST
/api/v1/emails/{emailId}/clicks - MCP tool
sendmock_email_click- In the app
- Mail > open email > click a link in the preview, or Simulate click
sendmock email clicks
Every recorded click on the email's links, newest first.
sendmock email clicks <emailId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email clicks 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: EmailClickRecord[]. Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/{emailId}/clicks - MCP tool
sendmock_email_clicks- In the app
- Mail > open email > Timeline (clicked entries)
sendmock email delete
Delete one email.
sendmock email delete <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --yes | boolean | Confirms a destructive command; without it the command stops. |
Example
sendmock email delete 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --yes
Output with --json: nothing. Exit codes: 0, 1, 2.
- API
- DELETE
/api/v1/emails/{emailId} - MCP tool
sendmock_email_delete- In the app
- Mail > open email > Delete
sendmock email delete-all
Delete every email, or only those that match the filters.
sendmock email delete-all --yes [flags]
| Flag | Type | Description |
|---|
| --yes | boolean | Confirms a destructive command; without it the command stops. |
| --query <query> | string | Search text; supports from:, to: and tag: prefixes.Example: to:[email protected] reset |
| --from <from> | string | |
| --to <to> | string | |
| --tag <tag> | string | Has this tag.Example: signup |
| --unread | boolean | Only unread. --no-unread sets it to false. |
| --has-attachment | boolean | Only with attachments. --no-has-attachment sets it to false. |
| --source <source> | string | How it arrived: smtp, sendmail, native_api, verify, simulated, or an email provider's key, e.g. sendgrid.Example: smtp |
| --direction <direction> | string | Outbound from your app or inbound to it.One of: outbound, inboundExample: outbound |
| --project <project> | string | Only this project's emails (its key); every project's when not set.Example: shop |
Output with --json: nothing. Exit codes: 0, 1, 2.
- API
- DELETE
/api/v1/emails - MCP tool
sendmock_email_delete_all- In the app
- Mail > Delete all
sendmock email forward
Forward as the recipient; the copy arrives as inbound email.
sendmock email forward <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --to <to>required | string | Where the email is forwarded, e.g. your app's inbound address.Example: [email protected] |
| --body <body> | string | A note above the forwarded message.Example: Can you look at this one? |
| --from <from> | string | |
| --subject <subject> | string | Defaults to Fwd: <original subject>.Example: Fwd: Your invoice |
| --include-original | boolean | Adds the original below a "Forwarded message" block (default true). --no-include-original sets it to false. |
| --include-attachments | boolean | Forwards the original attachments too (default true). --no-include-attachments sets it to false. |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Output with --json: EmailDetail. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/{emailId}/forward - MCP tool
sendmock_email_forward- In the app
- Mail > open email > Forward
sendmock email inbound
Create an incoming email from fields or raw MIME; fires email.inbound.
sendmock email inbound [flags]
| Flag | Type | Description |
|---|
| --from <from> | string | |
| --to <to> | string[] (repeat for more) | |
| --subject <subject> | string | The subject line.Example: Order arrived damaged |
| --text <text> | string | The plain-text body.Example: The box was crushed, can I get a replacement? |
| --html <html> | string | The HTML body.Example: <p>The box was crushed, can I get a replacement?</p> |
| --raw <raw> | string | |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Output with --json: NativeSendResult. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/inbound - MCP tool
sendmock_email_inbound- In the app
- Mail > Import .eml > Incoming to your app
sendmock email latest
The newest email to a recipient.
sendmock email latest --to <address> [flags]
| Flag | Type | Description |
|---|
| --to <address>required | string | |
| --subject <subject> | string | Subject contains.Example: Reset your password |
| --project <project> | string | Only this project's emails (its key); every project's when not set.Example: shop |
Example
sendmock email latest --to [email protected] --subject 'Reset your password' --project shop
Output with --json: EmailDetail. Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/latest - MCP tool
sendmock_email_latest- In the app
- Mail > search to:
sendmock email list
Stored emails, newest first, with search and filters.
sendmock email list [flags]
| Flag | Type | Description |
|---|
| --cursor <cursor> | string | The next_cursor of the previous page.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| --limit <limit> | integer | Items per page, 1 to 200 (default 50).Example: 50 |
| --query <query> | string | Search text; supports from:, to: and tag: prefixes.Example: to:[email protected] reset |
| --from <from> | string | |
| --to <to> | string | |
| --tag <tag> | string | Has this tag.Example: signup |
| --unread | boolean | Only unread. --no-unread sets it to false. |
| --has-attachment | boolean | Only with attachments. --no-has-attachment sets it to false. |
| --source <source> | string | How it arrived: smtp, sendmail, native_api, verify, simulated, or an email provider's key, e.g. sendgrid.Example: smtp |
| --direction <direction> | string | Outbound from your app or inbound to it.One of: outbound, inboundExample: outbound |
| --project <project> | string | Only this project's emails (its key); every project's when not set.Example: shop |
Example
sendmock email list --cursor 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --limit 50
Output with --json: PageOf_EmailSummary. Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails - MCP tool
sendmock_email_list- In the app
- Mail
sendmock email mime
The MIME tree of the message.
sendmock email mime <emailId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email mime 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: MimePart. Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/mime - MCP tool
sendmock_email_mime- In the app
- Mail > open email > MIME
sendmock email mime-part
Download one MIME part, decoded, by its position in the MIME tree.
sendmock email mime-part <emailId> <partId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| <partId>required | string | The part's position in the MIME tree, as GET /emails/{emailId}/mime numbers it, e.g. 1.2.Example: 1.2 |
Example
sendmock email mime-part 01JB7T9Q2R5W8X3Y6Z1A4B7C9D 1.2
Output with --json: file (application/octet-stream). Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/{emailId}/mime/{partId} - MCP tool
sendmock://emails/{emailId}/mime/{partId}- In the app
- Mail > open email > MIME, download a part
sendmock email open
Record an open and fire email.opened.
sendmock email open <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --source <source> | string | Who opened it: ui (the SendMock UI), manual (a person marking it) or api (a script). Defaults to api.One of: ui, manual, apiExample: api |
| --user-agent <user-agent> | string | The browser or client that opened it, kept in the open history. The UI sends its own.Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Example
sendmock email open 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --source api --user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5)'
Output with --json: nothing. Exit codes: 0, 1, 2, 3.
- API
- POST
/api/v1/emails/{emailId}/open - MCP tool
sendmock_email_open- In the app
- Mail > open email (opening it fires the open)
sendmock email opens
Every recorded open of the email, oldest first.
sendmock email opens <emailId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email opens 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: OpenRecord[]. Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/{emailId}/opens - MCP tool
sendmock_email_opens- In the app
- Mail > open email > Timeline (opened entries)
sendmock email raw
The raw message source.
sendmock email raw <emailId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email raw 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: file (message/rfc822). Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/raw - MCP tool
sendmock://emails/{emailId}/raw- In the app
- Mail > open email > Source, download .eml
sendmock email release
Send the email on through the allowlisted relay.
sendmock email release <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --to <to> | string[] (repeat for more) | Who receives it on the real SMTP server; empty sends to the original recipients. Every address must match the release allowlist.Example: ["[email protected]"] |
Output with --json: nothing. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/{emailId}/release - MCP tool
sendmock_email_release- In the app
- Mail > open email > Release to real SMTP
sendmock email reply
Reply as the recipient; the reply arrives as inbound email.
sendmock email reply <emailId> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --body <body> | string | The reply text, above the quoted original; empty or left out sends no text of its own.Example: Thanks, that fixed it! |
| --from <from> | string | |
| --subject <subject> | string | Defaults to Re: <original subject>.Example: Re: Ticket #318 updated |
| --reply-all | boolean | Also sends to the other original recipients, in Cc. --no-reply-all sets it to false. |
| --include-original | boolean | Quotes the original below an "On ... wrote:" line (default true). --no-include-original sets it to false. |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Example
sendmock email reply 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --body 'Thanks, that fixed it!' --from [email protected]
Output with --json: EmailDetail. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/emails/{emailId}/reply - MCP tool
sendmock_email_reply- In the app
- Mail > open email > Reply, Reply all
sendmock email send
Native send: JSON with optional base64 attachments.
sendmock email send [flags]
| Flag | Type | Description |
|---|
| --from <from>required | string | |
| --to <to>required | string[] (repeat for more) | |
| --cc <cc> | string[] (repeat for more) | |
| --bcc <bcc> | string[] (repeat for more) | Hidden copy recipients; stored with the email but not in its headers.Example: ["[email protected]"] |
| --subject <subject>required | string | The subject line.Example: Your order #1042 has shipped |
| --text <text> | string | The plain-text body. Send text, html or both.Example: Hi Sam, your order is on its way. |
| --html <html> | string | The HTML body. Send text, html or both.Example: <p>Hi Sam, your order is <b>on its way</b>.</p> |
| --headers <headers> | object (JSON) | Extra headers, by name. |
| --tag <tag> | string[] (repeat for more) | Tags to file the email under in Mail.Example: ["orders"] |
| --attachments <attachments> | NativeSendAttachment[] (JSON) | Files to attach.Example: [{"filename":"invoice-1042.pdf","content":"JVBERi0xLjQKJcfsj6IK","content_type":"application/pdf","content_id":"logo"}] |
Output with --json: NativeSendResult. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/send - MCP tool
sendmock_email_send- In the app
- Settings > Connection > Send this request
sendmock email show
One email with bodies, headers, attachments and extracted codes.
sendmock email show <emailId>
Also runs as sendmock email html <emailId>.
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email show 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: EmailDetail. Exit codes: 0, 1, 2, 3.
- API
- GET
/api/v1/emails/{emailId} - MCP tool
sendmock_email_get- In the app
- Mail > open email
sendmock email simulate
Simulate a delivery outcome such as a bounce or complaint.
sendmock email simulate <emailId> <event> [flags]
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| <event>required | string | The delivery event to simulate; it is added to the timeline and fires its webhook.One of: delivered, deferred, bounced, complained, unsubscribedExample: bounced |
| Flag | Type | Description |
|---|
| --bounce-type <bounce-type> | string | For bounced only: a hard bounce (the address does not exist) or a soft one (try again later).One of: hard, softExample: hard |
| --webhook <webhook> | string[] (repeat for more) | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide.Example: ["01JB7T9Q2RENDPOINT00000000"] |
| --webhook-requests <webhook-requests> | WebhookRequestEdit[] (JSON) | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads.Example: [{"endpoint_id":"01JB7T9Q2RENDPOINT00000000","event_type":"email.bounced","body":"{\"type\":\"email.bounced\",\"data\":{\"reason\":\"edited\"}}","headers":{"x-tenant":"acme"}}] |
Example
sendmock email simulate 01JB7T9Q2R5W8X3Y6Z1A4B7C9D bounced --bounce-type hard --webhook 01JB7T9Q2RENDPOINT00000000
Output with --json: nothing. Exit codes: 0, 1, 2, 3.
- API
- POST
/api/v1/emails/{emailId}/simulate - MCP tool
sendmock_email_simulate- In the app
- Mail > open email > Simulate
sendmock email thumbnail
A preview image of an attachment.
sendmock email thumbnail <emailId> <attachmentIndex>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| <attachmentIndex>required | integer | Position of the file in the email's attachments, starting at 0.Example: 0 |
Example
sendmock email thumbnail 01JB7T9Q2R5W8X3Y6Z1A4B7C9D 0
Output with --json: file (image/*). Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/parts/{attachmentIndex}/thumbnail - MCP tool
sendmock://emails/{emailId}/parts/{attachmentIndex}/thumbnail- In the app
- Mail > open email > Attachments (thumbnails)
sendmock email timeline
Delivery events: received, delivered, opened, bounced.
sendmock email timeline <emailId>
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
Example
sendmock email timeline 01JB7T9Q2R5W8X3Y6Z1A4B7C9D
Output with --json: EmailTimelineEntry[]. Exit codes: 0, 1, 2.
- API
- GET
/api/v1/emails/{emailId}/timeline - MCP tool
sendmock_email_timeline- In the app
- Mail > open email > Timeline
sendmock email update
Mark read or unread, or change tags.
sendmock email update <emailId> [flags]
Also runs as sendmock email tag <emailId>.
| Argument | Type | Description |
|---|
| <emailId>required | string | The email's ID, from GET /api/v1/emails.Example: 01JB7T9Q2R5W8X3Y6Z1A4B7C9D |
| Flag | Type | Description |
|---|
| --read | boolean | Marks the email as read (true) or unread (false). --no-read sets it to false. |
| --tag <tag> | string[] (repeat for more) | Replaces the email's tags; an empty list removes them all.Example: ["signup","qa"] |
Example
sendmock email update 01JB7T9Q2R5W8X3Y6Z1A4B7C9D --read --tag signup --tag qa
Output with --json: EmailSummary. Exit codes: 0, 1, 2, 3.
- API
- PATCH
/api/v1/emails/{emailId} - MCP tool
sendmock_email_update- In the app
- Mail > open email > Mark as read, tags
sendmock sendmail
Store a raw message as sent by your app, as the sendmail shim does.
sendmock sendmail [flags]
| Flag | Type | Description |
|---|
| --file <path>required | path | The raw request body (message/rfc822). From a file; - reads stdin.Example: message.eml |
Example
sendmock sendmail --file message.eml
Output with --json: NativeSendResult. Exit codes: 0, 1, 2.
- API
- POST
/api/v1/send/raw - MCP tool
sendmock_email_send_raw- In the app
- Mail > Import .eml > Sent by your app