Create and edit drafts locally, sync them to iCloud when you choose, then preview and send the saved revision.

Drafts are useful when a message needs more than one editing step or an agent should prepare mail for later review.

Create a draft

icloud mail draft create \
  --to client@example.com \
  --subject 'Project update' \
  --body-file draft.txt

Draft creation is local. The returned drf_… ID stays with the draft as you revise it.

A draft can be incomplete:

icloud mail draft create --subject 'Idea' --body 'Notes so far'

List and read drafts

icloud mail draft list
icloud mail draft show drf_…

Ask for the full body only when needed:

icloud mail draft show drf_… --full

Update a draft

icloud mail draft update drf_… \
  --to client@example.com \
  --subject 'Project update — revised' \
  --body-file revised.txt

You can use the same compose options as new mail, including attachments, sender identities, signatures, and S/MIME intent.

Make the draft available in iCloud Mail

icloud mail draft sync drf_…

To synchronize the provider Drafts area generally:

icloud mail draft sync

If your account does not expose a recognizable Drafts role, choose the discovered folder explicitly:

icloud mail draft sync drf_… --folder Drafts

See Folders if Drafts is not resolved automatically.

Preview and send

icloud mail draft send drf_… --dry-run

Then:

icloud mail draft send drf_… --yes

The send uses the same outbound safeguards as icloud mail send. If a send becomes uncertain, keep the draft and follow Outbox and send recovery rather than assuming it is safe to resend.

Delete a draft without sending

Review:

icloud mail draft delete drf_… --dry-run

Then delete:

icloud mail draft delete drf_… --yes

Agent workflow

A useful pattern is:

create → show/review → update → sync if desired → send --dry-run → send

This gives an agent a stable object to work on without turning every compose step into an outbound action.