Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Email Marketing

执行邮件营销任务,包括 AI 智能生成 HTML、个性化群发、自动化回信监控、FAQ 知识库智能匹配、多语种自动对齐。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 207 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The skill's code and docs implement bulk send, inbox scanning, and auto-reply — which matches the stated purpose — but the published metadata declares no required environment variables while the code clearly requires sensitive SMTP/IMAP credentials (EMAIL_SMTP_USER, EMAIL_SMTP_PASS, EMAIL_TEST_TARGET, etc.). README and SKILL.md also claim direct support for Claude/OpenAI APIs, but there is no code that calls those APIs. These mismatches (undeclared required secrets and advertised AI integrations with no implementation) are inconsistent with the stated purpose/packaging.
!
Instruction Scope
Runtime instructions direct the agent/user to read and write local files (Excel, faq.txt, email HTML), to run the included scripts, and to connect to SMTP/IMAP servers — all expected for an email tool. However SKILL.md and troubleshooting reference txt_to_html.py (not present) and direct the agent to use AI in the environment for HTML generation while no such implementation exists in the repo. The scripts also create and update local log/state files (assets/*.json, pending_replies.json) which is expected, but the missing helper file and the ambiguous AI step are scope/consistency issues.
Install Mechanism
There is no install spec (instruction-only for platform), and dependencies are standard Python packages listed in requirements.txt. No external downloads or arbitrary installers are used. This reduces supply-chain/remote-execution risk from an install step.
!
Credentials
The code requires SMTP and IMAP credentials (EMAIL_SMTP_USER, EMAIL_SMTP_PASS) and optionally host/port env vars — these are sensitive but proportionate to the email-sending/monitoring purpose. The problem is the registry metadata lists no required env vars, which is misleading. Additional concerns: scripts print the configured EMAIL_SMTP_USER value to stdout (check_setup.py) and disable TLS certificate verification (ssl.CERT_NONE) when connecting to SMTP/IMAP, which weakens security and could facilitate man-in-the-middle interception of credentials.
Persistence & Privilege
The skill does not request permanent platform-wide privileges (always:false). It writes logs and pending replies to its assets folder (assets/*.json, pending_replies.json), which is expected for this functionality. It does not modify other skills or system-wide configs.
Scan Findings in Context
[ssl-disable-verification] unexpected: final_sender.py and auto_reply_manager.py create SSL contexts with check_hostname=False and verify_mode=ssl.CERT_NONE, disabling certificate validation for SMTP/IMAP connections. This is not necessary for normal email use and weakens transport security; it also increases risk if credentials or message traffic are intercepted.
[undeclared-required-env-vars] unexpected: Registry metadata claims no required env vars, but scripts and README require EMAIL_SMTP_USER, EMAIL_SMTP_PASS, EMAIL_TEST_TARGET, and IMAP/SMTP host/port variables. This mismatch is misleading and important because the code needs secrets to function.
[missing-referenced-file] unexpected: SKILL.md and the troubleshooting section reference txt_to_html.py (and the repo mentions AI HTML generation) but no txt_to_html.py or explicit AI integration code exists in the file list. This is an inconsistency: the HTML-generation step is described but not implemented here.
[advertised-ai-apis-not-implemented] unexpected: README claims support for Claude and OpenAI APIs for HTML generation, but there is no code contacting those APIs or any API keys/config handling. Either the AI step is intended to run inside the platform separately, or the repo is incomplete; the discrepancy should be clarified before trusting the package.
What to consider before installing
This skill appears to implement bulk email sending and inbox-scanning as described, but you should not run it against real recipients or production credentials without review. Before installing/using: (1) Inspect the scripts locally and confirm the SMTP/IMAP hosts/ports and credentials you plan to use are correct; the code expects EMAIL_SMTP_USER and EMAIL_SMTP_PASS even though the skill metadata omitted them. (2) Re-enable proper TLS verification (remove ssl.CERT_NONE / check_hostname=False) or ensure you use trusted servers and certificates to avoid exposing credentials. (3) Note that txt_to_html.py and explicit AI API calls are referenced but not present — if you rely on automated HTML generation, implement or supply a safe converter and API-key handling. (4) Test in a sandbox with a single test inbox and synthetic Excel data (do not use real contact lists) and verify logs (assets/*.json) and pending_replies.json behavior. (5) Consider legal and spam-compliance obligations (opt-in lists, unsubscribe, rate limits). If you are not comfortable auditing code, avoid giving production email credentials to this package or run it only from an isolated environment/account.

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.1.2
Download zip
latestvk976hpv6z1fmrqvwxkgnmc7v1x827rxw

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

邮件营销与智能回信 Skill (Email Marketing & Auto-Reply)

本 Skill 用于稳健地执行邮件营销任务及自动化回信闭环,支持 AI 智能生成美观 HTML、个性化批量发送、智能回信监控等功能。

核心功能

  1. AI 智能生成 HTML:根据纯文本文案自动生成美观、响应式的 HTML 邮件模板,自动选择合适的设计风格(正式商务/营销推广/温馨问候)。
  2. 个性化群发:自动读取 邮箱.xlsx,根据每行数据动态替换 HTML 中的 【变量名】 占位符,实现一对一精准营销。
  3. 自动化回信监控:定期扫描收件箱中的未读邮件,智能识别客户提问。
  4. FAQ 知识库匹配:收到回信后,强制检索 faq.txt。仅针对知识库中有明确答案的问题进行回复,不确定的保持静默。
  5. 多语种对齐与商务礼仪:自动识别回信语言(如中、英、日等),以同语种、高标准商务礼貌语气生成回信草案。
  6. 防垃圾邮件策略:内置指纹码干扰与模拟人工发信延迟(3-8秒随机),降低进入垃圾箱的概率。

资源依赖

  • 名单邮箱.xlsx (支持读取 kol name, gender 等用于内容替换)
  • 标题邮件标题.txt
  • 文案邮件文案.txt (纯文本格式,AI会自动转换为HTML)
  • 内容邮件内容.html (依据 邮件文案.txt 内容通过AI生成,会自动替换其中的【变量名】占位符并根据内容自动美化设计)
  • 知识库faq.txt (用于自动回信的标准答案参考)

操作指南

1. 环境检查(首次使用)

运行环境检查脚本,确保所有依赖和配置都正确:

cd email-marketing/scripts
python3 check_setup.py

如果提示缺少依赖,安装所需包:

pip install -r email-marketing/requirements.txt

预期输出

✓ 所有依赖已安装
✓ 环境变量已配置
✓ 测试邮件配置正常

2. AI 智能生成 HTML(推荐)

根据纯文本文案自动生成精美 HTML 邮件:

在 OpenClaw 环境中:直接使用 AI 将文案转换为 HTML

输入要求

  • 文案位置:~/Desktop/邮件文案.txt
  • 文案格式:纯文本,支持【变量名】占位符

输出文件~/Desktop/邮件内容.html

AI 生成特点:

  • 🎨 根据文案内容自动选择设计风格(正式商务/营销推广/温馨问候)
  • 📱 自动生成响应式布局,移动端友好
  • ✅ 严格保留原文内容和【变量名】占位符
  • 🎯 兼容主流邮件客户端(Gmail、Outlook、QQ邮箱等)

3. 测试发送

发送一封测试邮件到预设的测试邮箱:

cd email-marketing/scripts
python3 final_sender.py

测试目的

  • 验证 HTML 渲染效果
  • 检查变量是否正确替换
  • 确认移动端和桌面端显示正常

预期输出

正在发送测试邮件...
✓ 测试邮件已发送至 test@example.com
请检查邮箱确认效果

4. 执行全量群发

批量发送到 Excel 名单中的所有收件人:

cd email-marketing/scripts
python3 final_sender.py run

发送策略

  • 每封邮件间隔 3-8 秒随机延迟
  • 每 10 封长休息一次
  • 自动记录发送状态

预期输出

开始批量发送...
[1/100] ✓ 发送成功: user1@example.com
[2/100] ✓ 发送成功: user2@example.com
...
✓ 全部发送完成,成功 100 封

5. 扫描并自动处理回信

运行脚本扫描新邮件,并结合 FAQ 进行智能拟稿:

cd email-marketing/scripts
python3 auto_reply_manager.py

工作流程

  1. 扫描收件箱未读邮件
  2. 识别客户语言(中/英/日等)
  3. 在 FAQ 中搜索匹配答案
  4. 生成同语种、商务礼貌的回信草案

预期输出

扫描到 3 封未读邮件
[1] user@example.com - "关于产品价格"
  → FAQ 匹配度: 95%
  → 生成回信草案(已保存)
[2] user2@example.com - "合作细节"
  → FAQ 匹配度: 30%(低于阈值,不回复)

6. 确认并发送回信

人工审核草案后,确认发送回信:

cd email-marketing/scripts
python3 auto_reply_manager.py send "recipient@email.com" "Subject" "Content"

7. 查看统计报表

查看发送统计和回信情况:

cd email-marketing/scripts
python3 check_replies.py

报表内容

  • 📊 发送统计:总发送数、成功数、失败数
  • 💬 回信统计:真实回信人数、回信率计算
  • ⚠️ 退信分析:退信数量、退信原因分类(账号不存在、垃圾邮件、邮箱已满等)
  • 📋 详细列表:每个回信和退信的详细信息

预期输出示例

--- 邮件营销综合效果报告 ---
统计日期: 2026-03-03
最近一次群发人数: 100
真实回信人数: 5
今日退信数量: 2

[回信详情]:
- 来自: user1@example.com
  标题: Re: 合作邀请
- 来自: user2@example.com
  标题: Re: 产品咨询

[退信分析]:
- 原因: 账号不存在 (Invalid User)
- 原因: 触发垃圾邮件风控 (Spam/Rejected)

关键指标

  • 回信率 = 真实回信人数 / 总发送数 × 100%
  • 退信率 = 退信数量 / 总发送数 × 100%
  • 有效触达率 = (总发送数 - 退信数量) / 总发送数 × 100%

统计文件位置

  • 发送日志:assets/email_status.json
  • 回信统计:assets/reply_stats.json

自动化运行准则 (Mandatory)

  • 查重原则:已经回复过的不需要再次回复,避免骚扰用户。
  • 明确性原则:只有明确在 FAQ 中有答案的问题才回复(匹配度 ≥ 80%),不确定时保持静默。
  • 内容一致性:HTML 渲染仅改变样式,严禁更改文案具体内容(变量替换除外)。
  • 稳重降频:正式发送每封间隔 3-8 秒随机延迟,每 10 封长休息 30-60 秒。
  • 安全第一:发送前必须测试,确认无误后再批量发送。

故障排查

问题 1: AI 生成 HTML 失败

症状txt_to_html.py 报错或生成空文件

解决方案

# 检查文案文件是否存在
ls ~/Desktop/邮件文案.txt

# 检查文案内容是否为空
cat ~/Desktop/邮件文案.txt

# 查看详细错误日志
python3 txt_to_html.py --verbose

问题 2: 发送失败

症状final_sender.py 报错 "Authentication failed"

解决方案

# 检查环境变量
echo $EMAIL_SMTP_USER
echo $EMAIL_SMTP_PASS

# 确认 SMTP 配置(如使用 Gmail 需要开启"不够安全的应用访问权限")
# 或使用应用专用密码

# 查看发送状态日志
cat ../assets/email_status.json

问题 3: 变量未替换

症状:收到的邮件中仍显示【kol name】等占位符

解决方案

  • 检查 Excel 文件列名是否与【变量名】完全匹配(不区分大小写)
  • 确认 Excel 路径:~/Desktop/邮箱.xlsx
  • 确认 Excel 中有数据行(非空)

示例 Excel 格式:

邮箱kol namegender
user@example.com张三先生

问题 4: 邮件进垃圾箱

症状:收件人反馈收不到邮件,或在垃圾箱中

优化措施

  • 增加发送延迟时间
  • 减少单日发送量(建议 < 500 封)
  • 优化邮件内容,避免敏感词汇
  • 使用企业邮箱发送(信誉度更高)
  • 添加 SPF、DKIM、DMARC 记录

最佳实践

文案编写技巧

  1. 使用变量实现个性化

    亲爱的【kol name】【gender】,
    
  2. 保持段落清晰

    • 每段 2-3 句话
    • 使用空行分隔段落
    • 重点内容加粗或列表
  3. 避免过长句子

    • 单句不超过 30 字
    • 复杂信息用列表展示

群发策略

  1. 测试优先

    • 发送 1 封到自己邮箱
    • 检查移动端和桌面端显示效果
    • 确认变量正确替换
  2. 分批发送

    • 首批 10-20 封测试市场反应
    • 根据回信率调整文案
    • 再执行大批量发送
  3. 时间选择

    • B2B 邮件:工作日 9:00-11:00, 14:00-16:00
    • B2C 邮件:晚上 19:00-21:00
    • 避免周一早上和周五下午

FAQ 知识库维护

创建 faq.txt 文件,格式如下:

Q: 你们的产品价格是多少?
A: 我们的产品起步价为 XX 元,具体价格根据您的需求定制。

Q: 如何合作?
A: 合作流程包括:1. 需求沟通 2. 方案制定 3. 合同签订 4. 执行交付

Q: 支持哪些语言?
A: 目前支持中文、英文、日文、韩文等主流语言。

更新频率:每周根据新问题补充,保持知识库覆盖率 > 80%。

数据分析与效果优化

1. 定期查看统计报表

建议在每次群发后 24-48 小时查看统计:

cd email-marketing/scripts
python3 check_replies.py

2. 关键指标基准值

指标优秀良好需优化
回信率> 5%2-5%< 2%
退信率< 2%2-5%> 5%
有效触达率> 95%90-95%< 90%

3. 根据数据优化策略

高退信率(> 5%)

  • 清洗邮箱名单,移除无效地址
  • 使用邮箱验证工具预先验证
  • 检查邮箱格式是否正确

低回信率(< 2%)

  • 优化邮件标题,提高打开率
  • 调整邮件内容,突出价值主张
  • 优化发送时间(参考最佳实践)
  • A/B 测试不同文案风格

垃圾邮件问题

  • 检查退信原因中"Spam/Rejected"占比
  • 如果超过 20%,需要优化邮件内容和发送策略
  • 考虑分批次、小批量发送

4. 回信处理效率

  • 使用自动回信功能处理常见问题(覆盖率目标 80%)
  • 对于 FAQ 无法匹配的问题,及时补充到知识库
  • 每周审核 assets/pending_replies.json,确保无遗漏

5. 持续改进循环

发送 → 统计分析 → 识别问题 → 优化调整 → 再次发送

建议每轮群发后记录:

  • 发送时间、数量
  • 文案版本
  • 回信率、退信率
  • 主要退信原因
  • 优化措施

通过数据驱动的持续优化,逐步提升营销效果。

Files

10 total
Select a file
Select a file to preview.

Comments

Loading comments…