Source Code
Send Email
Send emails via the Python script. SMTP settings are injected by OpenClaw at runtime when the script runs (from ~/.openclaw/openclaw.json โ skills.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"
}
}
}
}
| 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) |
Agent instructions
- Credentials: Never read config files. OpenClaw injects
skills.entries.send-email.envwhen the script runs โ do not use the read tool on~/.openclaw/openclaw.jsonorworkspace/openclaw.json(exposes secrets). If the skill is enabled, assume env is configured; do not ask the user for passwords. Do not use ~/.msmtprc. - 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" - 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_PASSWORDis the authorization code or App Password. - Connection failed: Check
EMAIL_SMTP_SERVERandEMAIL_SMTP_PORT.