Openakita smtp-email-sender

Send emails via SMTP (Gmail, Outlook, etc.). Supports attachments, HTML content, and multiple recipients. Use when user asks to send email, compose email, or email someone.

install
source · Clone the upstream repo
git clone https://github.com/openakita/openakita
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openakita/openakita "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/smtp-email-sender" ~/.claude/skills/openakita-openakita-smtp-email-sender && rm -rf "$T"
manifest: skills/smtp-email-sender/SKILL.md
source content

SMTP Email Sender

通过 SMTP 协议发送邮件,支持 Gmail、Outlook、企业邮箱等。

前置要求

1. Gmail 用户

如果使用 Gmail,需要:

  1. 启用两步验证
  2. 创建应用专用密码(App Password)

2. Outlook/Hotmail 用户

  1. 启用两步验证
  2. 创建应用密码:https://account.microsoft.com/security
  3. 或使用普通密码(如果允许)

3. 企业邮箱用户

联系 IT 部门获取:

  • SMTP 服务器地址
  • SMTP 端口(通常 587 或 465)
  • 是否需要 SSL/TLS

配置

.env
文件中添加以下环境变量:

# SMTP 配置
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password  # Gmail 使用应用专用密码
SMTP_USE_TLS=true

或者首次使用时运行配置脚本。

使用方法

基本用法

调用

send_email.py
脚本:

python scripts/send_email.py \
  --to recipient@example.com \
  --subject "邮件主题" \
  --body "邮件正文"

完整参数

参数必需说明
--to
收件人邮箱(多个用逗号分隔)
--subject
邮件主题
--body
邮件正文
--cc
抄送邮箱(多个用逗号分隔)
--bcc
密送邮箱(多个用逗号分隔)
--attachment
附件路径(多个用逗号分隔)
--is_html
正文是否为 HTML 格式(默认 false)
--from_name
发件人显示名称

示例

发送简单邮件

python scripts/send_email.py \
  --to friend@example.com \
  --subject "周末聚会" \
  --body "这周末有空吗?一起吃饭吧!"

发送 HTML 邮件带附件

python scripts/send_email.py \
  --to boss@company.com \
  --subject "项目报告" \
  --body "<h1>项目进度报告</h1><p>详见附件...</p>" \
  --is_html true \
  --attachment "report.pdf,chart.xlsx" \
  --from_name "张三"

发送给多人

python scripts/send_email.py \
  --to "alice@example.com,bob@example.com" \
  --cc "manager@example.com" \
  --subject "会议纪要" \
  --body "今天的会议纪要如下..."

支持的 SMTP 配置

Gmail

SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USE_TLS=true

Outlook/Hotmail

SMTP_SERVER=smtp-mail.outlook.com
SMTP_PORT=587
SMTP_USE_TLS=true

QQ 邮箱

SMTP_SERVER=smtp.qq.com
SMTP_PORT=587
SMTP_USE_TLS=true

163 邮箱

SMTP_SERVER=smtp.163.com
SMTP_PORT=587
SMTP_USE_TLS=true

企业邮箱(示例)

SMTP_SERVER=smtp.company.com
SMTP_PORT=587
SMTP_USE_TLS=true

常见问题

1. 认证失败

Gmail

  • 确保启用了两步验证
  • 使用应用专用密码,不是普通密码
  • 检查是否开启了"不够安全的应用"访问(不推荐)

Outlook

  • 检查是否需要应用密码
  • 确认 SMTP 地址正确

2. 连接超时

  • 检查防火墙设置
  • 尝试端口 465(SSL)代替 587(TLS)
  • 确认 SMTP 服务器地址正确

3. 附件太大

  • Gmail 限制 25MB
  • Outlook 限制 20MB
  • 大文件建议使用云盘链接

安全建议

  1. 永远不要在代码中硬编码密码
  2. 使用环境变量或加密的配置文件
  3. 定期更换应用专用密码
  4. 不要在公共网络使用 SMTP 发送敏感信息

故障排除

运行测试脚本验证配置:

python scripts/test_smtp.py

如果测试失败,检查:

  1. .env
    文件配置是否正确
  2. 网络连接是否正常
  3. 邮箱账号密码是否正确
  4. 防火墙是否阻止 SMTP 端口