email_send_draft
Sends a draft that already exists. This delivers mail to real people and cannot be undone — only call it when the user has approved that specific draft. The normal flow is email_create_draft, show the user the draft, then this. account_id must be the mailbox that owns the draft. idempotency_key is required: if the call times out, retry with the same key to learn the outcome instead of sending a second copy. The result's status is 'sent' or 'unknown' — 'unknown' means the server could not confirm delivery and did not retry, so check the mailbox before resending.
Input fields
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"minLength": 1,
"description": "The connected mailbox to act on, from email_accounts_list. Never guess this value and never reuse one across mailboxes — it selects both the credential and the permission set the call runs under."
},
"draft_id": {
"type": "string",
"minLength": 1,
"description": "The draft to send (draft_...)."
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"description": "A unique value you generate for this attempt, e.g. a UUID. Retrying with the same key returns the original result instead of acting twice. Reusing a key with different arguments is an IDEMPOTENCY_CONFLICT."
}
},
"required": [
"account_id",
"draft_id",
"idempotency_key"
]
}Tool behavior
May change provider state. Check the explicit account, required access and provider capabilities before invoking.
Inspect isError and per-account errors. General write tools do not all enforce exact-plan approval. This reference does not certify any current AI client version.

YOUR INBOXES.
UNDER CONTROL.
Get started Start with a free account and one read-only search. Existing accounts keep their connection.