skrzynka message/reply

Send one explicit plain-text reply through the exact mailbox that received the stored inbound message, with idempotency protection.

Invocation#

text
skrzynka message reply <ID> --body-file <BODY_FILE> [--idempotency-key <IDEMPOTENCY_KEY>]

Purpose#

Send one explicit plain-text reply through the exact mailbox that received the stored inbound message, with idempotency protection.

Inputs and options#

Input or optionRequiredMeaning
<ID>YesStored inbound message UUID.
--body-file <BODY_FILE>YesReadable regular UTF-8 file; trimmed body must not be empty. The SMTP server accepts or refuses its size.
--idempotency-key <IDEMPOTENCY_KEY>NoNon-whitespace characters. Omission generates a new UUID for this invocation.

Global options accepted on this path are --organization <ID> (required on every command except serve, version and onboarding; none is assumed), --skarbiec-bin <PATH> (default skarbiec) and --text (print results as path: value lines for people instead of JSON).

Output and state effect#

Creates a reply attempt, resolves the message's mailbox credential, preserves thread headers, and sends through that mailbox's SMTP endpoint. SMTP acceptance returns a sent attempt. Reusing the same key with the identical message/body returns the existing attempt without sending again. Lost terminal SMTP evidence returns an uncertain attempt with stored REPLY_UNCERTAIN; callers must inspect provider Sent mail and must not resend automatically.

Refusals#

  • Missing <ID>/--body-file or invalid UUID syntax is refused by Clap with exit 2.
  • REPLY_FILE_INVALID: message body file could not be read, message body file must be a regular file, or message body file must contain valid UTF-8 text. One helper reads the body file for both send paths, so the sentences are identical to message send; only the code differs, OUTBOUND_FILE_INVALID there.
  • REPLY_BODY_INVALID: reply body must not be empty; IDEMPOTENCY_KEY_INVALID: idempotency_key must contain non-whitespace characters only.
  • NOT_FOUND: message was not found; IDEMPOTENCY_KEY_REUSED: idempotency key already belongs to a different reply request.
  • Credential/profile/target refusals include SKARBIEC_ITEM_INVALID, SKARBIEC_UNAVAILABLE, SKARBIEC_TIMEOUT, MAILBOX_PROFILE_INVALID (mailbox sending address is invalid), and MESSAGE_REPLY_TARGET_INVALID (message has no valid Reply-To or From address).
  • SMTP_TLS_FAILED: SMTP TLS configuration was rejected; SMTP_REJECTED: SMTP explicitly rejected the message: <PROVIDER_REFUSAL>, carrying the server's own refusal text because that is the only thing that says why it refused. SMTP_UNCERTAIN is deliberately converted to a returned uncertain attempt rather than an exit-1 refusal.