Change a draft
update_draftReplaces an existing draft's recipients, subject, or body while keeping its message ID and attached files; omit text and HTML to retain the stored body.
Instructions
Replaces a draft with a changed version, keeping the same id. Fields that are not given are carried over, including the blind copies, which drafts written here keep. Files stored with the draft, a forwarded original among them, stay with it whatever happens to the body, and giving neither text nor html keeps the stored body exactly as it is. Only messages in the Drafts mailbox that carry the draft flag can be changed this way. The body is plain text and markup is not interpreted. HTML written here is delivered as visible characters, so the recipient would read the tags rather than see formatting. Give a message its shape with line breaks, blank lines, indentation and plain lists, and write a link as the bare address so that what is read is what is followed. A message may instead be written as markup, in the html field, which is delivered as formatting rather than as visible tags. Give one or the other, not both: a message that carries markup has its plain text half dropped, so the half that was confirmed would never arrive. Permitted are headings, paragraphs, line breaks, rules, quotes, emphasis, lists, tables, links and images, with colour, font, alignment, spacing and borders. Anything else is refused rather than quietly removed, and the answer names what and why. Note that the preview page linked from the confirmation lists every address in the message in full, including the ones behind links and images, and every alt text, because those are what a recipient reads. The question in the client stays short and carries counts instead. Text is UTF-8 everywhere: subject, body and addresses. Write characters as the language actually spells them, including umlauts, accents, sharp s, quotation marks and any other non-ASCII character. Do not transliterate them away (no "ae" for "ä", no "ss" for "ß"): the subject is encoded for transport and decoded again on arrival, and the body carries its character set, both verified against the Bridge. A transliterated message is simply a message with the wrong words in it.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"messageId": "<messageId>"
},
"name": "update_draft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Replaces the copies. Each entry is an address, optionally as "Display Name <name@example.com>". | |
| to | No | Replaces the main recipients. Each entry is an address, optionally as "Display Name <name@example.com>". | |
| bcc | No | Replaces the blind copies. Each entry is an address, optionally as "Display Name <name@example.com>". | |
| html | No | Replaces the body with markup. Give this or text, not both. Permitted are headings, paragraphs, line breaks, rules, quotes, emphasis, lists, tables, links and images, with colour, font, alignment, spacing and borders. Images may point at a full address; anything outside the permitted set is refused with a reason rather than removed. | |
| text | No | Replaces the body. | |
| subject | No | Replaces the subject. | |
| messageId | Yes | The message id from a listing or a search, with or without angle brackets. | |
| markupLevel | No | How much markup is permitted. "standard" covers ordinary formatted mail. "extended" permits every CSS property, including ones that can hide content, and makes the confirmation carry a warning telling the person to open the preview. Prefer "standard"; reach for "extended" only when asked for something that needs it, such as a button, which requires display:inline-block. | standard |