Save draft
save_draftStore a new email draft in the owner's mailbox without sending anything. Compose a new message or create a reply or forward, then edit or delete it later. Useful when a message needs review before it goes out.
Instructions
Writes a message into the owner's own Drafts folder and SENDS NOTHING. Nobody receives it, no mail server is offered it, and the only person who ever sees it is the mailbox's owner, in their own mail client. Use it when the person you are acting for should read a message before it goes out; sending it afterwards is send_draft, a separate tool behind a separate permission that this tool does not grant. A draft can be edited with update_draft and taken back with delete_draft, so nothing here is final. There are two shapes and a call states exactly one of them. A message of its own: name account and subject, and address it with to, cc, and bcc. An answer to mail this deployment already holds: name answeredEmailId and answering, and name NEITHER account NOR subject — the account, the subject, the threading headers that put the answer in the right conversation, the quoted original, and the files a forward carries are all read from the stored email, and to, cc, and bcc then add people beside whoever the answer already reaches. A call that states both shapes, or neither, is refused rather than guessed at. A draft addressed to nobody is an ordinary draft — writing the message before deciding who reads it is what drafting is for — and send_draft is what refuses it later, so nothing here requires a recipient. Calling this twice writes TWO drafts: there is no idempotency key, because a duplicate costs a deletion rather than a recipient a second message, so a retry after a timeout leaves a second draft to remove with delete_draft rather than one message sent twice. To change a draft, call update_draft with the draftId this answers rather than saving again. The From address is not an argument — the draft belongs to the account you name, or to the account the answered email is in, and that account's configuration decides the address. This tool will not attach files, will not schedule anything, and will not send.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | The addresses to copy, each a plain mail address. Everybody the message would reach can see them. Omit it to copy nobody. | |
| to | No | The addresses the draft is addressed to, one entry per person, each a plain mail address such as person@example.com without a display name. Omit it to address nobody yet, which is an ordinary draft. On a reply these are added beside the people the answer already reaches rather than replacing them; on a forward they are what the message would go to. | |
| bcc | No | The addresses to copy without naming them to anybody else. No other recipient would see that they received it. Omit it to blind-copy nobody. | |
| account | No | The account the draft belongs to, named by the accountId or the display name list_accounts returned. Required for a message of its own, and refused on an answer, where the account is read from the stored email being answered. | |
| subject | No | The subject line, as it will be stored. Required for a message of its own — empty text is allowed and means a message nobody has titled yet — and refused on an answer, where the subject is derived from the email being answered. A line break in it is refused, because a subject is written into a header. | |
| htmlBody | No | An HTML alternative to plainTextBody, stored beside it so each client shows the one it prefers. Omit it to write the plain text alone. It is the same message written twice, not a second message. | |
| answering | No | Which answer this draft is, required whenever answeredEmailId is named and refused otherwise. The three reach three different sets of people, so state it deliberately. | |
| plainTextBody | Yes | The message body as plain text, which every draft carries. It is required even when you also write htmlBody: a plain text derived by stripping markup reads as damage in the clients that show it, so the text you write here is what is stored. On an answer it is placed above the quoted original, which is added for you — do not paste or paraphrase the message being answered. | |
| answeredEmailId | No | The storedEmailId a listing, a search, a read, or an answer returned for the email this draft answers. Name it together with answering, and name neither to draft a message of its own. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Whether the owner's own drafts folder shows this version of the draft yet. The draft is held here either way and can be sent either way. | |
| draftId | Yes | The stable identifier of the draft. It is what update_draft, delete_draft, and send_draft name it by, and it does not change when the draft is edited. | |
| savedAt | Yes | When this version of the draft was written down, as an ISO 8601 timestamp. | |
| revision | Yes | Which version of the draft this is, counted from one. Every accepted update_draft call adds one, and the folder ends up showing one message rather than a version apiece. | |
| accountId | Yes | The configured MailFathom account identifier the draft belongs to, and the one it would be sent as. Its Delivery configuration decides the From address, which a caller never supplies. | |
| recipientCount | Yes | How many people the draft is addressed to across its to, cc, and bcc headers, after addresses named twice were reduced to one. Nobody is named. A draft addressed to nobody is an ordinary draft that send_draft refuses until it is addressed. |