skills$openclaw/send-email
fontstep6.6k

by fontstep

send-email – OpenClaw Skill

send-email is an OpenClaw Skills integration for coding workflows. Send emails via SMTP. Configure in ~/.openclaw/openclaw.json under skills.entries.send-email.env.

6.6k stars9.1k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namesend-email
descriptionSend emails via SMTP. Configure in ~/.openclaw/openclaw.json under skills.entries.send-email.env. OpenClaw Skills integration.
ownerfontstep
repositoryfontstep/send-email
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @fontstep/send-email
last updatedFeb 7, 2026

Maintainer

fontstep

fontstep

Maintains send-email in the OpenClaw Skills directory.

View GitHub profile
File Explorer
5 files
.
_meta.json
274 B
README.md
1.4 KB
send_email.py
3.6 KB
send_email.sh
1.6 KB
SKILL.md
2.6 KB
SKILL.md

name: send-email description: Send emails via SMTP. Configure in ~/.openclaw/openclaw.json under skills.entries.send-email.env. metadata: {"openclaw":{"emoji":"📧","requires":{"anyBins":["python3"]}}}

Send Email

Send emails via the Python script. SMTP settings are injected by OpenClaw at runtime when the script runs (from ~/.openclaw/openclaw.jsonskills.entries.send-email.env). Do not read any config file (e.g. ~/.openclaw/openclaw.json or workspace/openclaw.json) — that would expose credentials in tool output. Just run the script; env is injected automatically. Do not use ~/.msmtprc.

Configuration

Configure in ~/.openclaw/openclaw.json:

"skills": {
  "entries": {
    "send-email": {
      "enabled": true,
      "env": {
        "EMAIL_SMTP_SERVER": "smtp.163.com",
        "EMAIL_SMTP_PORT": "465",
        "EMAIL_SENDER": "your-email@163.com",
        "EMAIL_SMTP_PASSWORD": "YOUR_AUTH_CODE"
      }
    }
  }
}
VariableDescription
EMAIL_SMTP_SERVERSMTP server, e.g. smtp.163.com, smtp.gmail.com
EMAIL_SMTP_PORTPort, 465 (SSL) or 587 (TLS)
EMAIL_SENDERSender email address
EMAIL_SMTP_PASSWORDAuthorization code / app password (163/QQ: auth code; Gmail: App Password)

Agent instructions

  1. Credentials: Never read config files. OpenClaw injects skills.entries.send-email.env when the script runs — do not use the read tool on ~/.openclaw/openclaw.json or workspace/openclaw.json (exposes secrets). If the skill is enabled, assume env is configured; do not ask the user for passwords. Do not use ~/.msmtprc.
  2. Send mail: Run the script under workspace (do not use the path under node_modules):
    python3 ~/.openclaw/workspace/skills/send-email/send_email.py "recipient" "Subject" "Body"
    
  3. Attachment: python3 ~/.openclaw/workspace/skills/send-email/send_email.py "recipient" "Subject" "Body" "/path/to/file.pdf"

Usage examples

python3 ~/.openclaw/workspace/skills/send-email/send_email.py 'recipient@example.com' 'Subject' 'Body text'
python3 ~/.openclaw/workspace/skills/send-email/send_email.py 'recipient@example.com' 'Subject' 'Body' '/path/to/file.pdf'

SMTP reference

  • 163: smtp.163.com:465, requires authorization code (not login password)
  • Gmail: smtp.gmail.com:587, requires App Password
  • QQ: smtp.qq.com:465, requires authorization code

Troubleshooting

  • Authentication failed: Check that EMAIL_SMTP_PASSWORD is the authorization code or App Password.
  • Connection failed: Check EMAIL_SMTP_SERVER and EMAIL_SMTP_PORT.
README.md

Send Email Skill

OpenClaw skill for sending emails via SMTP using the Python script. Credentials are read from openclaw.jsonskills.entries.send-email.env (no ~/.msmtprc required).

Features

  • ✅ Support for 163, Gmail, QQ, and other SMTP providers
  • ✅ Python script with env from openclaw.json
  • ✅ Attachment support
  • ✅ No ~/.msmtprc or manual SMTP file config needed

Installation

Place this skill in workspace/skills/send-email/. It is then available to the agent.

Configuration

Configure SMTP in ~/.openclaw/openclaw.json:

{
  "skills": {
    "entries": {
      "send-email": {
        "enabled": true,
        "env": {
          "EMAIL_SMTP_SERVER": "smtp.163.com",
          "EMAIL_SMTP_PORT": "465",
          "EMAIL_SENDER": "your-email@163.com",
          "EMAIL_SMTP_PASSWORD": "YOUR_AUTH_CODE"
        }
      }
    }
  }
}

The agent runs python3 {baseDir}/send_email.py; OpenClaw injects these env vars at runtime.

Usage

The agent sends mail by running:

python3 {baseDir}/send_email.py "recipient@example.com" "Subject" "Body text"

With attachment:

python3 {baseDir}/send_email.py "recipient@example.com" "Subject" "Body" "/path/to/file.pdf"

Example prompts:

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

Configuration

Configure in **`~/.openclaw/openclaw.json`**: ```json "skills": { "entries": { "send-email": { "enabled": true, "env": { "EMAIL_SMTP_SERVER": "smtp.163.com", "EMAIL_SMTP_PORT": "465", "EMAIL_SENDER": "your-email@163.com", "EMAIL_SMTP_PASSWORD": "YOUR_AUTH_CODE" } } } } ``` | Variable | Description | |----------|-------------| | EMAIL_SMTP_SERVER | SMTP server, e.g. smtp.163.com, smtp.gmail.com | | EMAIL_SMTP_PORT | Port, 465 (SSL) or 587 (TLS) | | EMAIL_SENDER | Sender email address | | EMAIL_SMTP_PASSWORD | Authorization code / app password (163/QQ: auth code; Gmail: App Password) |

FAQ

How do I install send-email?

Run openclaw add @fontstep/send-email in your terminal. This installs send-email into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/fontstep/send-email. Review commits and README documentation before installing.