agentleFS
jeffliu05042jeffliu05042/send-email-skill/skills/send-email/SKILL.md

send-email

Skill1 starsChanged 4 months agoMITView on GitHub

Send plain-text email through either macOS /usr/bin/mail or an explicitly selected authenticated SMTP service, with RFC 2047 subject encoding and remote acceptance verification. Use when the user asks to email, mail, send, or deliver a report, notification, or confirmation, including when direct Postfix delivery is rejected because of sender-IP reputation.

27 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use aeon-update, auto-workflow and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • aaronjmarsSkill

    aeon-update

    Pull framework updates from the upstream Aeon repo into this instance - 3-way merges canon's new commits into a PR, never clobbering operator config.

    Also in 4 projects that use this

  • aaronjmarsSkill

    auto-workflow

    Two-mode aeon.yml workflow builder - analyze inspects URLs and emits a tiered, signal-verified skill-enablement plan plus an aeon.yml diff; enable flips slugs to enabled:true and opens a PR.

    Also in 4 projects that use this

  • +10 more from aaronjmars

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use scripts/send_email.sh, resolved relative to this SKILL.md.

    line 8
  2. Distinctive:

    Prefer a macOS Keychain item for SMTP passwords.

    line 15
  3. Distinctive:

    Use plain-text content. Attachments and HTML are outside this skill's scope.

    line 16
  4. Very specific:

    Do not fall back from local to smtp automatically: a local result may be delayed or ambiguous, and fallback could send a duplicate.

    line 23

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Send Email

Use scripts/send_email.sh, resolved relative to this SKILL.md. It supports two explicit transports and never retries through a different transport automatically.

Safety

  1. Send only when the user explicitly authorizes delivery and supplies or confirms the recipient.
  2. Review the recipient, subject, body, and transport before execution. Never include credentials, private keys, or unrelated local data.
  3. Send exactly once. Investigate an uncertain result before retrying.
  4. Prefer a macOS Keychain item for SMTP passwords. Never place passwords in files, command arguments, commits, or user-facing output.
  5. Use plain-text content. Attachments and HTML are outside this skill's scope.

Select a Transport

  • local (default): use /usr/bin/mail and direct Postfix delivery. Choose only when the current network's sender IP is acceptable to the recipient domain.
  • smtp: log in to a configured SMTP service over SSL or STARTTLS. Choose when direct delivery is blocked or authenticated sender identity is required. Read references/smtp.md before use.

Do not fall back from local to smtp automatically: a local result may be delayed or ambiguous, and fallback could send a duplicate.

Send

Pipe a generated body through standard input:

printf '%s\n' 'Report body' | \
  <skill-directory>/scripts/send_email.sh \
  --transport local \
  --to 'person@example.com' \
  --subject 'Report subject'

For authenticated SMTP, configure the variables in references/smtp.md, then change the transport:

printf '%s\n' 'Report body' | \
  <skill-directory>/scripts/send_email.sh \
  --transport smtp \
  --to 'person@example.com' \
  --subject 'Report subject'

Alternatively pass --body-file '/absolute/path/report.txt'. Use --dry-run to validate inputs and configuration without sending or connecting to the SMTP server.

Interpret Results

  • SUBJECT_HEADER_READY reports ASCII or RFC 2047 subject preparation.
  • LOCAL_MAIL_ACCEPTED means /usr/bin/mail accepted a local-transport message.
  • SMTP_CONFIG_READY and SMTP_AUTHENTICATED describe authenticated SMTP setup and login.
  • REMOTE_SMTP_ACCEPTED means the receiving SMTP server accepted the message; require it plus exit code 0 before reporting success.
  • REMOTE_SMTP_REJECTED, REMOTE_DELIVERY_DEFERRED, REMOTE_DELIVERY_UNCONFIRMED, SMTP_AUTH_FAILED, and SMTP_SEND_FAILED are failures.
  • Say the receiving SMTP server accepted the message; do not claim the recipient read it.
  • On nonzero exit, report the exact failure and do not silently switch transports or retry.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.