2.4 KiB
2.4 KiB
mail sent_messages recall
前置条件: 先阅读
../../lark-shared/SKILL.md了解认证、全局参数和安全规则。
撤回已发送邮件,并查询异步撤回结果。
何时使用
发送成功后,若发送响应中包含 recall_available: true,说明该邮件支持撤回(通常为 24 小时内已投递的邮件)。
- 只有用户明确要求撤回时才执行。
- 若响应中无
recall_available字段,不要主动提及撤回。 - 定时发送中、尚未真正发出的邮件不能用撤回;应使用
user_mailbox.drafts cancel_scheduled_send取消定时发送。 - 撤回是异步操作,
recall返回成功只表示请求已受理,实际结果必须通过get_recall_detail查询。
命令
# 发起撤回
lark-cli mail user_mailbox.sent_messages recall --as user \
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
# 查询撤回进度
lark-cli mail user_mailbox.sent_messages get_recall_detail --as user \
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
返回值解读
recall 返回:
recall_status: available— 撤回请求已受理,稍后查询进度。recall_status: unavailable— 不可撤回,查看recall_restriction_reason。
get_recall_detail 返回:
recall_status: in_progress— 撤回进行中,可稍后再查。recall_status: done— 撤回完成,查看recall_result和每个收件人的详情。
具体字段和枚举以 schema 为准:
lark-cli schema mail.user_mailbox.sent_messages.get_recall_detail
典型流程
# 1. 发送结果中确认可撤回
# data.recall_available == true
# 2. 用户确认要撤回后发起
lark-cli mail user_mailbox.sent_messages recall --as user \
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
# 3. 查询最终结果
lark-cli mail user_mailbox.sent_messages get_recall_detail --as user \
--params '{"user_mailbox_id":"me","message_id":"<message_id>"}'
相关命令
lark-cli mail +send --confirm-send— 发送新邮件,响应中可能包含recall_available。lark-cli mail +reply --confirm-send— 发送回复,响应中可能包含recall_available。lark-cli mail +forward --confirm-send— 发送转发,响应中可能包含recall_available。lark-cli mail user_mailbox.messages send_status— 查询发送投递状态。