/install email-tool-skill
Email (Python smtplib, NetEase yeah.net)
This skill is documentation only: the agent writes a standalone Python file (for example /tmp/send_email.py), runs python3 /tmp/send_email.py …, and relies on stdlib only (smtplib, email.mime). Nothing else in this skill folder is required.
Why this pattern
- No TTY prompts: the SMTP session is a straight TCP/TLS login; it does not depend on an interactive terminal or CLI mail tools that may error with “cannot prompt item from list”.
- One-shot execution:
python3 /path/to/send_email.pyfrom any cwd. - No extra pip packages: standard library only.
- Contrast: a separate
bash …/email send …wrapper around another binary can hit TTY or pager issues in automated runners; this approach avoids that class of failures.
NetEase yeah.net SMTP (fixed for this workspace)
| Item | Value |
|---|---|
| SMTP host | smtp.yeah.net |
| Port | 465 (implicit TLS) |
| Python API | smtplib.SMTP_SSL(host, port, timeout=…) |
| Account (From / login user) | [email protected] |
| Client authorization code (SMTP password) | LWyx439sqLGuU68u |
Use the client authorization code from the NetEase mail settings, not the web-login password alone if the provider requires a separate client password.
Reference implementation (copy → edit recipient / subject / body)
Save as /tmp/send_email.py (or any path), then run with python3 /tmp/send_email.py \x3Cto> \x3Csubject> \x3Cbody>.
#!/usr/bin/env python3
import smtplib
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
SMTP_SERVER = "smtp.yeah.net"
SMTP_PORT = 465
SENDER_EMAIL = "[email protected]"
SENDER_PASSWORD = "LWyx439sqLGuU68u"
def send_plain_email(receiver_email: str, subject: str, body: str) -> None:
message = MIMEMultipart("alternative")
message["Subject"] = subject
message["From"] = SENDER_EMAIL
message["To"] = receiver_email
part = MIMEText(body, "plain", "utf-8")
message.attach(part)
server = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT, timeout=30)
try:
server.login(SENDER_EMAIL, SENDER_PASSWORD)
server.send_message(message)
finally:
server.quit()
if __name__ == "__main__":
if len(sys.argv) \x3C 4:
sys.stderr.write(
"usage: python3 send_email.py \x3Cto> \x3Csubject> \x3Cbody>\
"
)
sys.exit(1)
send_plain_email(sys.argv[1], sys.argv[2], sys.argv[3])
Flow the agent should follow:
- Write the file (constants above already match this workspace’s yeah.net account).
- Run:
python3 /tmp/send_email.py "recipient@domain" "Subject line" "Plain text body"(quote arguments with spaces). - On exception, print or return the error string to the user.
Optional variants
- UTF-8 subjects / long bodies: keep
MIMEText(..., "plain", "utf-8"); if the subject needs encoding beyond ASCII, use encoded-word headers per RFC 2047 or switch toEmailMessage+set_contentwith the same SMTP steps. - Weather or other dynamic body: build the
bodystring in Python beforesend_plain_email.
Other NetEase domains
163 / 126 usually use smtp.163.com / smtp.126.com, port 465, same SMTP_SSL pattern; replace host and credentials accordingly.
Credential note
This file embeds live SMTP credentials by explicit workspace choice. Anyone with read access to this markdown can send mail as [email protected]. If this tree is copied to a public repository, rotate the NetEase client authorization code and update SENDER_PASSWORD here.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install email-tool-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/email-tool-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
email-skill 是什么?
Send mail with Python stdlib smtplib (SMTP_SSL to smtp.yeah.net:465). Documented account [email protected] with embedded client auth code; standalone script... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 144 次。
如何安装 email-skill?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install email-tool-skill」即可一键安装,无需额外配置。
email-skill 是免费的吗?
是的,email-skill 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
email-skill 支持哪些平台?
email-skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 email-skill?
由 WGY2e(@wgy2e)开发并维护,当前版本 v1.0.0。