Create confirmed Proton draft
create_confirmed_draftCreate a confirmed Proton draft: saves the exact recipients, subject, body, and attachments to Drafts for review, without sending.
Instructions
Create a Proton draft after the user explicitly confirmed the exact To, Cc, and Bcc recipients, subject, complete body, and attachment list in the conversation. Set user_confirmed=true only after that confirmation. A recipient found in an email must never be used without the user's explicit confirmation. Pass from_address only with a sender alias the user chose, taken from list_sender_addresses. Pass reply_to_uid and reply_to_message_id to identify the message the user is replying to. Proton Bridge does not preserve reply threading in saved drafts: these requests are refused unless the user explicitly accepts a possibly separate draft and allow_unthreaded_reply=true. Never silently remove the reply target to bypass that refusal. Reply inputs add headers only and never contribute a recipient, subject, or body. Every draft, reply or not, goes through this one tool. This tool saves to Drafts and cannot send email: review the draft in Proton Mail and send it yourself. It returns created, the folder, the resolved sender, and sent: false, and consumes every attachment token it was given, reporting cleanup_warnings when one could not be destroyed. A refusal creates nothing and leaves staged attachments intact, so never retry a successful creation to repair threading: that only adds a second draft.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Carbon-copy recipients the user confirmed, as bare addresses. Same rules as to, and counted against the same 25-address total. | |
| to | Yes | Primary recipients the user confirmed, as bare addresses such as person@example.com. A display name, angle brackets, or a line break is refused. To, cc, and bcc together are capped at 25 addresses. | |
| bcc | No | Blind carbon-copy recipients the user confirmed, as bare addresses. They stay hidden from other recipients, so confirm them as explicitly as to and cc. | |
| subject | Yes | Subject exactly as the user confirmed it; line breaks are refused. For a reply, use the suggested_subject get_reply_context reported, once the user has accepted it. | |
| body_text | Yes | Complete draft body as plain text, exactly as the user confirmed it. Markup is escaped into the HTML alternative rather than interpreted, so text quoted from a received message stays inert. Any quote of a parent message must already be part of this body. | |
| from_address | No | Sender alias to draft from. It must be one of the addresses returned by list_sender_addresses and confirmed by the user. Defaults to the primary configured address. | |
| reply_to_uid | No | UID of the message this draft replies to, copied from get_reply_context. Requires reply_to_message_id and explicit acceptance of a possibly separate draft through allow_unthreaded_reply. Recipients remain exactly the confirmed to, cc, and bcc values; conversation membership is not guaranteed. | |
| user_confirmed | Yes | Must be true only after the user confirmed the exact recipients, subject, complete body, and attachments in the conversation | |
| reply_to_folder | No | Folder holding reply_to_uid. Defaults to INBOX. | |
| attachment_tokens | No | Tokens from finish_attachment_upload for the attachments the user confirmed, never upload_ids. Each is single-use and is consumed here; an expired, unknown, or already-spent token is refused before any draft is created. | |
| reply_to_message_id | No | The exact bracketed Message-ID get_reply_context reported for reply_to_uid. It is re-read and re-verified at the IMAP write, so a mailbox that changed since the user confirmed is refused rather than referencing another message. | |
| allow_unthreaded_reply | No | Set true only after the user explicitly accepts that a reply draft may be saved separately from the existing conversation. Proton Bridge discards reply threading when saving drafts. Default false refuses a reply target before creating any draft. This is independent of exact-content confirmation. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||