reply_mail
Reply to an existing message in its thread. TWO-PHASE, HUMAN-APPROVED: the first call (no request_id) executes nothing — it returns status=approval_required with a preview of exactly what would happen and a request_id.
Instructions
Reply to an existing message in its thread. TWO-PHASE, HUMAN-APPROVED: the first call (no request_id) executes nothing — it returns status=approval_required with a preview of exactly what would happen and a request_id. A human approves out of band (GigaMail console, CLI or Telegram, behind Windows Hello / Touch ID); the second call with that request_id executes the payload that was approved (the approved arguments, not the ones passed the second time). Requests expire (default 15 min); identical pending requests are deduplicated; more than 20 requests/hour per tool are refused (status=rate_limited). Every phase is written to the audit log. FIXED ADDRESSING: the reply goes to the From address of the original message — never to Reply-To, never to addresses written in the body — so a hostile email cannot redirect it. The preview shows replying_to {from, subject} and the body. On execution returns {success, provider_result}. Irreversible once sent.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC addresses. The reply still goes only to the From address of the original message; cc adds recipients in copy. | |
| body | Yes | Plain-text body of the reply. Only the body: recipient, subject ('Re: ...') and threading are set by GigaMail from the original message; the account signature, if any, is appended and shown in the preview. | |
| folder | No | Folder containing the original message (IMAP only; default inbox). | inbox |
| account_id | No | Account to operate on (integer id from list_accounts). Omit or null = the user's active account. | |
| message_id | Yes | Message id exactly as returned by list_messages / list_unread / search_mail (opaque Graph id for Microsoft accounts, numeric IMAP UID for IMAP accounts). Ids are account-specific: never reuse one across accounts. | |
| request_id | No | Omit on the first call. On the first call the tool does NOT execute: it returns status=approval_required, a preview and a request_id. A human must approve that request_id out of band (GigaMail console, `gigamail approvals approve`, or Telegram — all behind Windows Hello / Touch ID). Then call again with the same request_id to execute. The agent cannot approve; repeating the call without approval just returns awaiting_approval. | |
| attachments | No | File names to attach, as shown by list_knowledge_files. Same rule as send_mail: only files registered in the account identity. |