Module: Mailmate::CLI::Send Private
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
mm-send — send mail through MailMate's emate CLI with a markdown body.
Replaces the 6-line bash wrapper that previously lived at
~/.claude/skills/email/send-email. All flags pass through to emate mailto; --markup markdown is enforced.
Constant Summary collapse
- EMATE_PATH =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
"/Applications/MailMate.app/Contents/Resources/emate"- PREAMBLE =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
<<~PREAMBLE mm-send — thin wrapper around `emate mailto` with `--markup markdown` enforced. Body is read from stdin. All other flags pass through to emate (its help follows). Replies and threading MailMate auto-generates the outgoing Message-ID — never your job. In-Reply-To and References are PURE PASS-THROUGH: whatever you set via `--header` ships verbatim; what you don't set is absent (and recipients' clients will see the message as a fresh thread, no matter how `Re:` the subject looks). To make a reply land in-thread, pass both: mm-send -f you@x -t them@y -s "Re: foo" \\ --header "In-Reply-To: <parent-message-id@domain>" \\ --header "References: <root-mid> <parent-mid>" \\ --send-now <<<"body" References is constructed as the source message's References header (if any) with the source's Message-ID appended. If the source is a thread root with no References, just use its Message-ID alone. Identity selection `-f <address>` picks which of MailMate's configured identities sends. Without `-f`, MailMate uses its default identity. See `mmdiscover` to list available addresses. ──────────────────────────── emate help follows ──────────────────────────── PREAMBLE
Instance Method Summary collapse
-
#run(argv) ⇒ Object
private
Returns the exit status of the spawned
emateinvocation.
Instance Method Details
#run(argv) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the exit status of the spawned emate invocation. Uses
system (not exec) so the caller — and the test suite — can
actually observe the result.
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mailmate/cli/send.rb', line 47 def run(argv) Mailmate::PlatformError.check_darwin!(component: "mm-send") unless File.executable?(EMATE_PATH) warn "mm-send: emate not found at #{EMATE_PATH}. Is MailMate installed?" return 1 end warn PREAMBLE if argv.include?("--help") || argv.include?("-h") system(EMATE_PATH, "mailto", "--markup", "markdown", *argv) $?.exitstatus end |