cargo-mailbox-management
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCargo CLI — Mailbox Management
Cargo CLI — 邮箱管理
Mailboxes. A mailbox is a real sending inbox the workspace owns — provisioned through
Cargo on a sending domain the workspace also owns, with SMTP and IMAP credentials Cargo holds
and uses to deliver outbound mail and to read the replies that come back. Two things follow,
and both are easy to get wrong: a mailbox is a recurring monthly credit charge rather than
a per-record one, and this domain does not send. It provisions the inbox, ramps it, and
reports on what it did; the send itself is the action, under
.
sendEmailcargo-orchestrationbash
cargo-ai mailboxManagement mailbox … # provision, warm-up, send allowance
cargo-ai mailboxManagement message … # outbound sends
cargo-ai mailboxManagement thread … # conversations, and the replies on them
cargo-ai mailboxManagement event … # sent / opened / clicked / replied / unsubscribed
cargo-ai mailboxManagement suppression … # workspace-wide do-not-send list
cargo-ai mailboxManagement pricing … # monthly credits per mailbox flavourVersion note.and the documentedmailbox get-warmup-statsdefault of 40 are merged but not yet on npm. On an older CLI,--daily-targetreads "provider default if omitted", and--daily-targetsilently prints theget-warmup-statsgroup help instead of erroring — so an unrecognised subcommand here looks like a usage mistake, not a missing feature.mailboxlists what your CLI actually has. Everything else on this page is live in the released CLI; re-run the session refresh incargo-ai mailboxManagement mailbox --helpto pick up the rest.../cargo/SKILL.md
邮箱(Mailbox)。邮箱是工作区自有的真实发送收件箱——通过Cargo在工作区同样拥有的发送域名上配置,Cargo持有SMTP和IMAP凭据,用于发送出站邮件并读取回复。有两点需要注意,且很容易出错:邮箱是月度 recurring credit 收费项,而非按记录收费;该域名并不直接发送邮件,它负责配置收件箱、执行暖箱流程并报告操作结果;实际发送由动作完成,相关内容见。
sendEmailcargo-orchestrationbash
cargo-ai mailboxManagement mailbox … # 配置、暖箱、发送额度管理
cargo-ai mailboxManagement message … # 出站邮件发送
cargo-ai mailboxManagement thread … # 对话及回复
cargo-ai mailboxManagement event … # 已发送/已打开/已点击/已回复/已退订事件
cargo-ai mailboxManagement suppression … # 工作区全局禁发列表
cargo-ai mailboxManagement pricing … # 不同类型邮箱的月度credits费用版本说明。命令及文档中默认的mailbox get-warmup-stats值40已合并代码,但尚未发布到npm。在旧版本CLI中,若省略--daily-target,会显示「使用服务商默认值」;而--daily-target命令会静默打印get-warmup-stats组的帮助信息,而非报错——因此无法识别的子命令看起来像是使用错误,而非缺失功能。可通过mailbox查看当前CLI实际支持的命令。本文档中的其他内容均已在已发布的CLI中生效;如需获取最新功能,请重新执行cargo-ai mailboxManagement mailbox --help中的会话刷新操作。../cargo/SKILL.md
Bootstrap
初始化
Already signed in ( returns a workspace)? Skip to the next section.
cargo-ai whoamibash
npm install -g @cargo-ai/cli # no global install? prefix every command with `npx @cargo-ai/cli`
cargo-ai login --email you@company.com # emailed code, no browser; creates the account on first use
# alternatives: --oauth (browser) · --token <api-token> (CI)
cargo-ai whoami # confirm the active workspace before any writeEvery command prints JSON to stdout; failures exit non-zero with .
Nothing in this domain is asynchronous — every command is a single HTTP call, so there is no
run to poll (the one thing that looks async, a freshly created mailbox sitting at ,
is polled with , not with ). Mailboxes are guarded by
/ permissions, which an admin and an editor
both hold and a viewer does not; if a create or update returns a permission error, the token is
read-only ().
When the full skill bundle is installed,
adds the CLI version pin, token scopes, and the admin-only surface.
{"errorMessage": "..."}pendingmailbox refresh-statusrun getmailboxManagement:readmailboxManagement:write../cargo-workspace-management/SKILL.md../cargo/references/prerequisites.md已登录(可返回工作区信息)?请跳过本节直接查看下一部分。
cargo-ai whoamibash
npm install -g @cargo-ai/cli # 不想全局安装?在所有命令前添加前缀`npx @cargo-ai/cli`
cargo-ai login --email you@company.com # 会发送验证码邮件,无需浏览器;首次使用时将创建账号
# 其他登录方式:--oauth(浏览器登录)· --token <api-token>(CI环境)
cargo-ai whoami # 执行任何写入操作前,确认当前激活的工作区所有命令都会向stdout输出JSON;执行失败时会返回非零退出码及。本模块中所有操作均为同步——每个命令对应一次HTTP调用,因此无需轮询运行状态(唯一看似异步的操作是新创建的邮箱处于状态,需通过轮询,而非)。邮箱受 / 权限保护,管理员和编辑拥有该权限,查看者则没有;若创建或更新操作返回权限错误,说明当前令牌为只读权限(详见)。安装完整技能包后,会添加CLI版本固定、令牌权限范围及管理员专属功能说明。
{"errorMessage": "..."}pendingmailbox refresh-statusrun getmailboxManagement:readmailboxManagement:write../cargo-workspace-management/SKILL.md../cargo/references/prerequisites.mdBefore any send — three checks
发送前的三项检查
This is a blocking gate, not advice. Cargo owning the mailbox changes who presses send; it
changes nothing about whether the message should be sent. The canonical rules are
§3 and
they apply here unchanged — run all three before the first , not after:
../cargo-gtm/references/acceptable-use.mdsendEmail- Basis — which permission covers this audience (customers, opted-in contacts, event attendees, or a documented legitimate-interest case for a B2B role)?
- Suppression — subtract the workspace suppression list from the audience before you
enrich or send. is free and this domain is the source of truth for it.
suppression list - Relevance — can you name, per recipient, why this message is for them?
Any check that fails is a stop-and-ask. Two obligations are specific to Cargo-owned sending:
- The ramp is a ceiling, not a target. reports what a mailbox may send today; it is not a quota to fill. Asking to raise it, to spread one campaign across a fleet of fresh mailboxes to clear the same volume, or to rotate identities so filters see less from each, is the evasion refusal in
get-send-allowance§2 — not a configuration question.acceptable-use.md - Unsubscribes are automatic and absolute. Every send carries a signed header; a recipient using it writes a workspace-wide
List-Unsubscriberow, and the next send to that address is refused by the engine. There is no removal command, and that is the point — never route around a suppression to re-contact someone.suppression
这是强制校验,而非建议。Cargo拥有邮箱所有权改变了发送主体,但并未改变是否应该发送邮件的规则。标准规则见第3节,此处完全适用——请在首次执行前完成全部三项检查,而非事后补做:
../cargo-gtm/references/acceptable-use.mdsendEmail- 合规性——针对该受众群体,您拥有何种发送权限(客户、已选择加入的联系人、活动参与者,或B2B场景下有文档记录的合法利益案例)?
- 退订校验——在进行受众群体扩充或发送前,需从受众中排除工作区退订列表中的用户。命令免费使用,且本模块是退订列表的唯一可信来源。
suppression list - 相关性——您能否针对每个收件人说明该邮件与他们相关的原因?
任何一项检查不通过都需停止操作并确认。针对Cargo自有发送邮箱,还有两项特定义务:
- 暖箱上限并非目标值。命令会报告邮箱今日可发送的最大数量;这并非必须用尽的配额。请求提高上限、将一个活动分散到多个新邮箱以发送相同数量的邮件,或轮换身份以降低每个邮箱的发送频率,均属于
get-send-allowance第2节中禁止的规避行为——而非配置问题。acceptable-use.md - 退订操作自动且不可撤销。每一封发送的邮件都会携带签名的头部;收件人点击退订后,会在工作区全局
List-Unsubscribe列表中添加记录,下次向该地址发送邮件时会被引擎拒绝。没有移除退订记录的命令,这是刻意设计的——永远不要绕过退订列表重新联系用户。suppression
The two numbers that govern a mailbox
控制邮箱的两个关键指标
They look similar and mean opposite things. Confusing them is the most common way to
mis-read a mailbox's health.
| | |
|---|---|---|
| Measures | Your real outreach | The provider's dummy warm-up traffic |
| Window | Rolling 24 hours | Today, UTC |
| Returns | | |
| Answers | "How many more may I send?" | "Is this inbox landing in the inbox or in spam?" |
dailyLimitwarmupStatusreferences/warmup-and-allowance.md它们看起来相似,但含义完全相反。混淆这两个指标是误判邮箱健康状态最常见的原因。
| | |
|---|---|---|
| 衡量内容 | 您的实际触达量 | 服务商的模拟暖箱流量 |
| 统计周期 | 滚动24小时 | 当日(UTC时区) |
| 返回字段 | | |
| 解答问题 | "我今天还能发送多少邮件?" | "此邮箱的邮件是进入收件箱还是垃圾邮件?" |
dailyLimitwarmupStatusreferences/warmup-and-allowance.mdCommands
命令说明
All commands output JSON. Reads need ; everything that provisions,
updates, deletes, or suppresses needs .
mailboxManagement:readmailboxManagement:write所有命令均输出JSON格式结果。读取操作需要权限;所有配置、更新、删除或屏蔽操作需要权限。
mailboxManagement:readmailboxManagement:writeProvision a mailbox
配置邮箱
First, the gap you will hit. requires , and there is no
command that lists sending domains — the API exists but has no
CLI surface yet. Get the UUID from the Cargo web app, or declare the domain in a CDK repo with
and read it back from . Say this to the user rather than
guessing a UUID.
mailbox create--domain-uuidcargo-aidomainManagementdefineDomaincargo.state.jsonbash
cargo-ai mailboxManagement mailbox create \
--domain-uuid <domain-uuid> \
--type google \
--username jane \
--first-name Jane \
--last-name Doe \
--signature '<p>Jane Doe · Acme</p>' \
--folder-uuid <folder-uuid>
cargo-ai mailboxManagement mailbox refresh-status <uuid> # repeat until status is "active"- —
--type,google, orshared.privateis accepted by the flag and always fails withoutlook: the Graph transport has not shipped, so an Outlook mailbox cannot deliver. Pick one of the other three.transportNotSupported - — the local part only (
--usernameforjane). Lowercased; letters, digits, dots, dashes and underscores, 1–64 characters, starting and ending alphanumeric.jane@acme.com - /
--first-name— the From header the recipient sees. Use a real person's name under a real identity; a fabricated sender is a §2 refusal.--last-name - — HTML, stored on the mailbox (max 10,000 characters).
--signature - — a folder of kind
--folder-uuid, frommailbox.cargo-workspace-management
createstatus: "pending"activerefresh-statuscredentialsMissingbash
cargo-ai mailboxManagement mailbox list # every mailbox
cargo-ai mailboxManagement mailbox list --statuses active # comma-separated, no spaces
cargo-ai mailboxManagement mailbox list --domain-uuid <uuid>
cargo-ai mailboxManagement mailbox get <uuid>
cargo-ai mailboxManagement mailbox update --uuid <uuid> --first-name Janet
cargo-ai mailboxManagement mailbox update --uuid <uuid> --folder-uuid none # "none" clears
cargo-ai mailboxManagement mailbox remove <uuid> # deletes at the provider too- —
--statuses,pending,active, comma-separated with no spaces. Aninactivemailbox was disabled by the provider;inactivesays why (errorCodeauth,401spam) and it will not send until it is fixed.402 - is the sentinel for "clear it" on
noneand--folder-uuid. On--signature,listmeans "mailboxes in no folder".--folder-uuid none - is how monthly billing stops. There is no pause.
remove
首先需要注意的问题。命令需要参数,但目前没有命令可以列出发送域名——API已存在,但尚未提供CLI交互界面。可从Cargo网页应用获取UUID,或在CDK仓库中使用声明域名并从中读取。请直接告知用户获取方式,而非猜测UUID。
mailbox create--domain-uuidcargo-aidomainManagementdefineDomaincargo.state.jsonbash
cargo-ai mailboxManagement mailbox create \
--domain-uuid <domain-uuid> \
--type google \
--username jane \
--first-name Jane \
--last-name Doe \
--signature '<p>Jane Doe · Acme</p>' \
--folder-uuid <folder-uuid>
cargo-ai mailboxManagement mailbox refresh-status <uuid> # 重复执行直到状态变为"active"- ——可选值为
--type、google或shared。private参数可被识别,但执行时总会失败,返回outlook错误:Graph传输功能尚未发布,因此Outlook邮箱无法投递邮件。请选择其他三个类型之一。transportNotSupported - ——仅包含本地部分(如
--username中的jane@acme.com)。会自动转换为小写;允许使用字母、数字、点、连字符和下划线,长度1–64字符,必须以字母或数字开头和结尾。jane - /
--first-name——收件人在From头部看到的名称。请使用真实身份的真实姓名;虚构发件人属于第2节中禁止的行为。--last-name - ——HTML格式,存储在邮箱中(最大10,000字符)。
--signature - ——类型为
--folder-uuid的文件夹UUID,来自mailbox。cargo-workspace-management
createstatus: "pending"refresh-statusactivecredentialsMissingbash
cargo-ai mailboxManagement mailbox list # 列出所有邮箱
cargo-ai mailboxManagement mailbox list --statuses active # 逗号分隔,无空格
cargo-ai mailboxManagement mailbox list --domain-uuid <uuid>
cargo-ai mailboxManagement mailbox get <uuid>
cargo-ai mailboxManagement mailbox update --uuid <uuid> --first-name Janet
cargo-ai mailboxManagement mailbox update --uuid <uuid> --folder-uuid none # "none"表示清除
cargo-ai mailboxManagement mailbox remove <uuid> # 同时在服务商侧删除邮箱- ——可选值为
--statuses、pending、active,逗号分隔无空格。inactive状态表示邮箱被服务商禁用;inactive字段会说明原因(如errorCode表示认证失败,401表示垃圾邮件问题),修复前无法发送邮件。402 - 是
none和--folder-uuid参数的特殊值,表示「清除」。在--signature命令中,list表示「列出未归类到任何文件夹的邮箱」。--folder-uuid none - 命令是停止月度计费的唯一方式。没有暂停功能。
remove
Warm it up
暖箱操作
A mailbox that never starts warm-up is pinned at 5 real sends a day, forever. Warm-up is
what moves it, and it takes 45 days to finish.
bash
cargo-ai mailboxManagement mailbox start-warmup <uuid> --daily-target 40
cargo-ai mailboxManagement mailbox get-warmup-stats <uuid> # next CLI release
cargo-ai mailboxManagement mailbox update-warmup --uuid <uuid> --status paused
cargo-ai mailboxManagement mailbox update-warmup --uuid <uuid> --daily-target 25
cargo-ai mailboxManagement mailbox stop-warmup <uuid> # resets the ramp- — warm-up messages per day at full ramp, 1–40 (default 40). This is the provider's dummy traffic, not your send allowance.
--daily-target - on
--statusaccepts the whole enum, but onlyupdate-warmupandactivedo anything:pausedandpendingare states the provider reaches on its own, andfailedis whatdisabledis for.stop-warmup - resets the Cargo send ramp as well as tearing down provider warm-up — the mailbox drops back to 5/day and starts the 45 days over. Pause instead unless you mean it.
stop-warmup
从未启动暖箱的邮箱将被永久限制为每天最多发送5封真实邮件。暖箱操作是提升发送额度的唯一方式,整个流程需要45天完成。
bash
cargo-ai mailboxManagement mailbox start-warmup <uuid> --daily-target 40
cargo-ai mailboxManagement mailbox get-warmup-stats <uuid> # 下一版本CLI将支持
cargo-ai mailboxManagement mailbox update-warmup --uuid <uuid> --status paused
cargo-ai mailboxManagement mailbox update-warmup --uuid <uuid> --daily-target 25
cargo-ai mailboxManagement mailbox stop-warmup <uuid> # 重置发送额度递增流程- ——暖箱完成后每天的模拟暖箱邮件数量,范围1–40(默认40)。这是服务商的模拟流量,并非您的实际发送额度。
--daily-target - 命令的
update-warmup参数接受所有枚举值,但只有--status和active会生效:paused和pending是服务商自动进入的状态,failed是disabled命令的结果。stop-warmup - 命令会重置Cargo的发送额度递增流程,同时终止服务商的暖箱操作——邮箱会回落至每天5封的发送限制,需重新开始45天的暖箱流程。除非确实需要,否则请选择暂停而非停止。
stop-warmup
Check the allowance before you send
发送前检查额度
bash
cargo-ai mailboxManagement mailbox get-send-allowance <uuid>bash
cargo-ai mailboxManagement mailbox get-send-allowance <uuid>→ {"allowance":{"dailyLimit":12,"sentCount":4,"remainingCount":8}}
→ {"allowance":{"dailyLimit":12,"sentCount":4,"remainingCount":8}}
Read `remainingCount` before enrolling a batch. Sends past it do not queue for tomorrow — they
fail immediately with `dailyLimitReached`, one wasted run per row.
在批量发送前请查看`remainingCount`字段。超过额度的发送请求不会排队到次日——会立即返回`dailyLimitReached`错误,每一行数据都会浪费一次运行机会。Read what happened
查看操作记录
bash
cargo-ai mailboxManagement message list --mailbox-uuid <uuid> --statuses sent,replied --limit 50
cargo-ai mailboxManagement message get <uuid>
cargo-ai mailboxManagement thread list --mailbox-uuid <uuid> --search acme
cargo-ai mailboxManagement thread get <uuid>
cargo-ai mailboxManagement event list --kinds replied,unsubscribed --occurred-after 2026-08-01- Message vs thread vs event. A message is one outbound send. A thread is a
conversation — its and
lastEmailare what you sort a reply queue on. An event is something that happened to a message (lastEvent,sent,opened,clicked,replied,bounced). Inbound replies are events, not message rows; only outbound mail is a message.unsubscribed - on
--statuses/message listis the list status —thread list,pending, or an event kind.erroris not in that set: a delivered message reads assuccessor later.sent - ,
--kinds,--statusesare all comma-separated with no spaces.--reasons - never fires yet. Nothing parses delivery-status notifications, so bounces do not produce events and do not auto-suppress. Do not build a deliverability report that treats an empty bounce count as a clean list.
bounced - ,
message, andthreadlists default toevent(max 200) and return a--limit 50.countandmailbox listhave no default limit (max 1000), andsuppression listreturns nomailbox list— seecount.references/response-shapes.md
bash
cargo-ai mailboxManagement message list --mailbox-uuid <uuid> --statuses sent,replied --limit 50
cargo-ai mailboxManagement message get <uuid>
cargo-ai mailboxManagement thread list --mailbox-uuid <uuid> --search acme
cargo-ai mailboxManagement thread get <uuid>
cargo-ai mailboxManagement event list --kinds replied,unsubscribed --occurred-after 2026-08-01- Message(邮件)vs thread(对话)vs event(事件)。Message指单发出站邮件;thread指一次完整对话——可通过和
lastEmail字段对回复队列进行排序;event指邮件发生的动作(lastEvent、sent、opened、clicked、replied、bounced)。 inbound回复属于event,而非message;只有出站邮件属于message。unsubscribed - /
message list命令中的thread list参数指列表状态——可选值为--statuses、pending或事件类型。error不在可选范围内:已投递的邮件状态显示为success或更高阶状态。sent - 、
--kinds、--statuses参数均为逗号分隔,无空格。--reasons - 事件目前尚未触发。暂无解析投递状态通知的功能,因此 bounce不会生成事件,也不会自动添加到退订列表。请勿构建将bounce计数为空视为列表干净的投递报告。
bounced - 、
message和thread列表默认event(最大200),并返回--limit 50字段。count和mailbox list命令无默认限制(最大1000),且suppression list不返回mailbox list字段——详见count。references/response-shapes.md
Suppression
退订管理
Workspace-wide, not per mailbox: a recipient opting out is opting out of the sender, not of one
address the sender happens to own.
bash
cargo-ai mailboxManagement suppression list --reasons unsubscribed,manual
cargo-ai mailboxManagement suppression create --email opted-out@acme.com- Reasons are (the recipient's own choice, via
unsubscribed),List-Unsubscribe,bounced, andcomplained.manualalways recordssuppression create.manual - It is idempotent — suppressing an already-suppressed address returns the existing row.
- Addresses are normalised () on both write and check, so casing and stray whitespace cannot slip a suppressed recipient back into a send.
trim().toLowerCase() - There is no . That is deliberate.
suppression remove
退订列表为工作区全局范围,而非按邮箱划分:收件人退订是针对发送方,而非发送方拥有的某个具体地址。
bash
cargo-ai mailboxManagement suppression list --reasons unsubscribed,manual
cargo-ai mailboxManagement suppression create --email opted-out@acme.com- 退订原因包括(收件人通过
unsubscribed主动选择退订)、List-Unsubscribe、bounced和complained。manual命令始终记录为suppression create。manual - 该操作具有幂等性——对已退订的地址执行屏蔽操作会返回已存在的记录。
- 地址在写入和校验时都会被标准化(),因此大小写和多余空格不会导致已屏蔽的收件人被重新纳入发送列表。
trim().toLowerCase() - 没有命令。这是刻意设计的。
suppression remove
Pricing
价格查询
bash
cargo-ai mailboxManagement pricing getbash
cargo-ai mailboxManagement pricing get→ {"monthlyCredits":{"google":125,"outlook":160,"shared":100,"private":100}}
→ {"monthlyCredits":{"google":125,"outlook":160,"shared":100,"private":100}}
Read this **live** before quoting a fleet cost — the figures above are what the workspace
returned at the time of writing, not a constant.
在报价邮箱集群成本前,请**实时**查询该命令——上述数值为撰写本文档时工作区返回的结果,并非固定值。Sending: the sendEmail
action
sendEmail发送操作:sendEmail
动作
sendEmailDelivery is deliberately not in this CLI domain. It is a native orchestration action so that
sends inherit orchestration's pacing, retry, and credit machinery:
bash
cargo-ai orchestration action execute \
--action '{"kind":"native","actionSlug":"sendEmail","config":{}}' \
--data '{"mailboxUuid":"<mailbox-uuid>","to":"jane@acme.com","subject":"...","bodyHtml":"<p>…</p>"}' \
--wait-until-finished- 0.1 credits per send, fixed. stays
config; the inputs go in{}, like every other action (--data).../cargo-orchestration/SKILL.md - Optional (generated from the HTML when omitted),
bodyText, andinReplyTo.references - To keep a reply threaded, send the whole chain. is every
referencesin the thread so far, oldest first — not just the parent. Mail clients break the thread otherwise.Message-ID - The action is rate-limited per mailbox to that mailbox's own daily limit, spread across the day. A burst of 100 on a mailbox with 40 left fails the 41st immediately rather than parking it for a day.
- A refused send is a node error, not a thrown exception. ,
recipientSuppressed, andmailboxNotActiveneed a human and do not retry;transportNotSupported,dailyLimitReached, andcredentialsMissingretry on their own.deliveryFailed - There is no dry run from the CLI. The engine has one, but no flag reaches it — the send is live the moment you run the command. Send to yourself first.
action execute
Threading, the full refusal table, and what Cargo injects into every message (unsubscribe
header, open pixel, click redirect) are in .
references/sending.md投递功能并未包含在本CLI模块中。它是一个原生编排动作,因此发送操作会继承编排的节奏控制、重试机制及credits计费规则:
bash
cargo-ai orchestration action execute \
--action '{"kind":"native","actionSlug":"sendEmail","config":{}}' \
--data '{"mailboxUuid":"<mailbox-uuid>","to":"jane@acme.com","subject":"...","bodyHtml":"<p>…</p>"}' \
--wait-until-finished- 每发送一封邮件收取0.1 credits,固定费用。参数保持
config;输入信息放在{}中,与其他所有动作一致(详见--data)。../cargo-orchestration/SKILL.md - 可选参数包括(省略时会从HTML自动生成)、
bodyText和inReplyTo。references - 如需保持回复线程连贯,请发送完整对话链。参数需包含对话中所有
references,按从旧到新的顺序排列——而非仅父邮件的ID。否则邮件客户端会中断对话线程。Message-ID - 该动作按每个邮箱进行速率限制,遵循邮箱自身的每日发送限额,并在全天内分散发送。若某邮箱剩余40封发送额度,一次性发送100封邮件时,第41封会立即失败,而非排队等待次日发送。
- 发送被拒绝会返回节点错误,而非抛出异常。、
recipientSuppressed和mailboxNotActive错误需要人工处理,不会自动重试;transportNotSupported、dailyLimitReached和credentialsMissing错误会自动重试。deliveryFailed - CLI暂无试运行功能。引擎支持试运行,但命令没有对应的参数——执行命令后邮件会立即发送。请先发送给自己测试。
action execute
对话线程规则、完整错误拒绝列表,以及Cargo自动注入每封邮件的内容(退订头部、打开像素、点击重定向),请查看****。
references/sending.mdCost discipline
成本管控
This domain bills differently from the rest of the pack, and the difference is the thing to say
out loud before provisioning anything.
- A mailbox is a monthly, recurring charge — 100–160 credits per mailbox, per month, for
as long as it exists. Five mailboxes is 500–625 credits every month, not once. is the only way to stop it; there is no pause. Quote the fleet size and the monthly credit estimate from a live
mailbox remove, and get an explicit yes, before the firstpricing get.create - Sends are 0.1 each, so volume is cheap and the fleet is not. Do the arithmetic in that order.
- A play or scheduled tool that calls re-bills on every run — and re-contacts the same people on every run, which is the §6 cadence gate in
sendEmailas much as a spend gate. Checkacceptable-use.mdbefore enrolling a batch: rows past the allowance burn a run each and deliver nothing.get-send-allowance - The full spend rules — sampling before a full enrollment, the approval message, the receipt —
are .
../cargo-gtm/references/cost-discipline.md
本模块的计费方式与其他模块不同,在配置任何资源前请明确告知用户这一点。
- 邮箱为月度 recurring charge——每个邮箱每月收取100–160 credits,只要邮箱存在就会持续计费。5个邮箱每月会产生500–625 credits的费用,而非一次性费用。是停止计费的唯一方式;没有暂停功能。在执行首次
mailbox remove命令前,请通过实时create命令获取邮箱集群规模对应的月度credits估算费用,并获得用户的明确同意。pricing get - 每发送一封邮件收取0.1 credits,因此发送量成本较低,而邮箱集群成本较高。请按此顺序进行成本计算。
- 调用动作的play或定时工具会在每次运行时重新计费——并且每次运行都会重新联系相同的用户,这既是
sendEmail第6节中的频率限制,也是成本限制。在批量发送前请检查acceptable-use.md:超过额度的行数据会浪费一次运行机会,且无法投递邮件。get-send-allowance - 完整的支出规则——批量发送前的抽样、审批消息、收据——详见。
../cargo-gtm/references/cost-discipline.md
Declarative alternative: defineMailbox
(CDK)
defineMailbox声明式替代方案:defineMailbox
(CDK)
defineMailboxFor the inbox itself, prefer CDK — the help says so, and the reason is that
a mailbox is long-lived infrastructure with a monthly cost, which is exactly what belongs in
git and in a plan you can review. (with for the sending domain)
covers it; binds a mailbox bought in the web app instead of provisioning a second
one. See and "Declarative vs imperative" in
.
mailbox createdefineMailboxdefineDomainadopt: true../cargo-cdk/SKILL.md../cargo/SKILL.mdUse this skill's imperative commands for one-off provisioning, and for everything CDK does not
model at all: warm-up, allowance, messages, threads, events, and suppressions.
对于邮箱本身,优先使用CDK——命令的帮助信息中也提到了这一点,原因是邮箱是长期存在的基础设施且产生月度费用,完全适合纳入git管理及可审核的计划中。(配合配置发送域名)可覆盖邮箱配置;参数可绑定在网页应用中购买的邮箱,而非重新配置一个新邮箱。详见及中的「声明式vs命令式」部分。
mailbox createdefineMailboxdefineDomainadopt: true../cargo-cdk/SKILL.md../cargo/SKILL.md本技能的命令式命令适用于一次性配置操作,以及CDK未覆盖的所有功能:暖箱、额度管理、邮件、对话、事件及退订列表。
When the CLI surprises you
CLI异常处理
If a documented flag or response shape doesn't match what you observe, re-refresh the CLI and
skills; if it still doesn't add up, file a report — it's read by the team. The missing
surface is a live example: needs a that no
command can produce.
domainManagementmailbox create--domain-uuidbash
cargo-ai workspaceManagement report create \
--title "<one-line summary>" \
--description "<exact command(s), errorMessage verbatim, expected vs actual, UUIDs>"若文档中记录的参数或响应格式与实际观察到的不符,请重新刷新CLI及技能;若问题仍存在,请提交报告——团队会查看报告。缺失的交互界面就是一个典型例子:命令需要参数,但没有任何命令可以生成该参数。
domainManagementmailbox create--domain-uuidbash
cargo-ai workspaceManagement report create \
--title "<一行摘要>" \
--description "<精确命令、errorMessage原文、预期vs实际结果、UUID>"Presenting results
结果展示
Follow : lead with the
outcome ("mailbox active, 8 of today's 12 sends left, 2 replies since Monday"), summarize a
fleet or a reply queue as a compact table, and never dump raw or JSON
into the conversation. When you report a fleet, report its monthly cost, not a one-off one.
../cargo/references/interaction.mdmailbox getevent list请遵循:以结果开头(如「邮箱已激活,今日12封发送额度剩余8封,周一以来收到2条回复」),将邮箱集群或回复队列总结为简洁表格,切勿将原始的或 JSON直接粘贴到对话中。报告邮箱集群时,请说明月度成本,而非一次性成本。
../cargo/references/interaction.mdmailbox getevent list