Send a draft
mail_send_draftSends a saved draft as it is now. Use it after the user has reviewed a draft from mail_create_draft. Returns sent. It can return pending_approval: tell the user a person must approve it in Prubex, and do not retry. If held, a person approves the draft as it is at that moment; if it changes before then, the approval fails. Example: { "draft_id": "msg_…" }.
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": {
"draft_id": "<draft_id>"
},
"name": "mail_send_draft"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | A draft's message id (`msg_…`): `draft.id` from mail_create_draft, or an `id` from mail_list_drafts. Editing a draft can change it on some providers; use the latest. | |
| idempotency_key | No | Any unique string. Retrying with the same key within 24 h never repeats the action. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| message | Yes | What happened, in words for the user. | |
| thread_id | No | ||
| account_id | Yes | ||
| expires_at | No | When held: when the request expires. | |
| message_id | No | The sent message, when the provider reports it. | |
| review_url | No | When held: where a person approves it in Prubex. | |
| approval_id | No | When held: pass it to approvals_get later. |