# mail +message-trash `mail +message-trash` is the preferred shortcut for soft-deleting existing messages. Use it after obtaining real `message_id` values from `+triage`, `+message`, or `+messages`, and after the user has confirmed the deletion preview. ## Common Commands ```bash lark-cli mail +message-trash --message-ids , --yes lark-cli mail +message-trash --mailbox shared@example.com --message-ids --yes lark-cli mail +message-trash --message-ids --message-ids --dry-run ``` ## Flags | Flag | Required | Notes | | --- | --- | --- | | `--mailbox` | No | Mailbox that owns the messages. Defaults to `me`. | | `--message-ids` | Yes | `string_array`; supports comma-separated values and repeated flags. | | `--yes` | Yes for execution | Required by the high-risk write confirmation framework. | ## Behavior - Message IDs are locally validated, de-duplicated in first-seen order, and sent in batches of 20. - The shortcut calls `POST /open-apis/mail/v1/user_mailboxes//messages/batch_trash` sequentially. - Single batch POST failures mark every message in that batch with the same failure reason; later batches still run. - JSON output is intentionally compact: ```json { "success_message_ids": ["id1"], "failed_message_ids": [ {"message_id": "id2", "reason": "api error"} ] } ``` ## When Raw API Is Still Appropriate Use raw `mail user_mailbox.messages batch_trash` only when reproducing backend/API behavior exactly for diagnostics. For normal soft deletion, prefer this shortcut because it handles validation, batching, compact output, and `--yes` confirmation consistently.