reply-to-message
Send a reply to an existing email by ID, keeping thread headers intact. Optionally reply to all recipients or save as draft for review.
Instructions
Use when: replying to an existing message by id, preserving its threading headers. Set replyAll for all recipients; set send=false to save as a draft instead of sending. Returns: a confirmation that the reply was sent or saved as a draft; over SMTP, also whether a Sent-folder copy was filed (sentCopy). Do not use when: composing a brand-new message (use send-email / create-draft) or forwarding to new recipients (use forward-message). Safety: with the default send=true this SENDS real email immediately and cannot be unsent — require explicit user confirmation of the recipients and body, or pass send=false to let the user review.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | Reply body (plain text; HTML tags such as <br> are not rendered) | |
| send | No | Send immediately (false = save as draft) | |
| replyAll | No | Reply to all recipients | |
| transport | No | SMTP sends clean MIME and preserves reply threading; requires SMTP configuration. AppleScript uses Mail.app and may quote-wrap the new body on macOS 15+. Omit to prefer configured SMTP when sending; drafts use AppleScript. A selected SMTP transport never silently falls back. SMTP with send=false is rejected. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| ok | No | ||
| sent | No | ||
| sentCopy | No | SMTP only: whether a best-effort copy was filed to the account's Sent mailbox over IMAP (issue #220). Absent when no configured IMAP account matches the SMTP identity — not a failure, the feature simply wasn't engaged. | |
| messageId | No | ||
| transport | No | ||
| sentCopyError | No | Present only when sentCopy is false: why the Sent-folder copy failed. |