邮件起草与发送,支持纯文本正文和 ZIP、PDF、图片等多个附件。用户要求把文件发到指定邮箱时也使用本技能。
75%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/email-ops/SKILL.md代替用户起草并发送邮件,支持纯文本正文和多个附件,统一通过 email-ops wrapper 发送。
用户已给出收件人、文件和发送要求时,核对主题、正文和附件后直接执行 Step 5。
在起草任何内容之前,先明确:
邮件类型(从以下选一个):
A. 首次触达(定制化,非批量)
B. 回复/跟进(对方已有回复或之前有过沟通)
C. 会前确认(日期/地点/议程)
D. 会后跟进(感谢 + 下一步行动)
E. 合作提案 / 报价
F. 引荐接收(某人引荐后的首封邮件)
收集信息:
- 目标姓名、职位、公司
- 发件账号(公司域名邮箱 / 个人邮箱)
- 是否有现有线程?(如有,需先读取)
- 目标:签客户 / 找合作 / 接触投资人 / 其他
- 关系温度:陌生 / 见过面 / 有过合作未提供邮件类型时,根据上下文推断。推断不确定时先问。
如果是回复或跟进邮件:
1. 确认邮件客户端(通常为系统默认邮件客户端,通过 shell 或 browser 访问)
2. 定位线程:
- 搜索发件人邮箱或公司名
- 找到最近的往来邮件
3. 提取:
- 最后一封邮件的日期、发件方、核心内容
- 对方提出的问题 / 尚未回答的点
- 之前承诺的事项(如:"我会发资料给你")
- 是否已有报价或提案在线程中
4. 识别跟进距离:
上次邮件距今:
< 48h → 正常速度跟进
3-7天 → 轻推,语气平和
> 7天 → 需要重新建立上下文,别假设对方记得之前内容规则:
- 有公司域名邮箱时,B2B 场景优先用公司邮箱
- 个人引荐 → 用个人邮箱,更暖
- 与投资人沟通 → 优先公司邮箱(显示专业度)
- 发件人名称格式:完整姓名 + 公司名
例:张三 <zhangsan@company.com>
渠道确认:
- 对方之前用邮件回复 → 继续邮件
- 对方之前提到微信 → 建议换到微信,邮件只发摘要
- 没有回复记录 → 默认邮件根据邮件类型,使用对应结构:
LLM Prompt:
"起草一封与潜在合作伙伴或投资人建立联系的信件,发给 {姓名}({职位} @ {公司})。
背景:
- 发件人:{姓名},{职位},{公司及一句话介绍}
- 目的:{目的,例如:探讨数据采集服务合作}
- 找他的理由:{个性化理由,例如:看到贵公司近期发布了...}
- 关系温度:陌生 / 通过 {中间人} 引荐
格式要求:
- 中文
- Subject:10 字以内,具体到对方业务,不用感叹号
- 正文 3 段,总计 120-150 字:
段 1:为什么写这封邮件(个性化切入)
段 2:我方能提供的价值(从对方视角,不是自我介绍)
段 3:一个低摩擦 CTA(15 分钟通话 / 一封回复即可)
- 结尾不用"谢谢" / "期待您的回复" 等套话
返回格式:
Subject: [主题行]
---
[正文]"LLM Prompt:
"起草一封跟进邮件,基于以下线程上下文。
线程摘要:
- 上次发件方:{我方/对方}
- 上次时间:{N 天前}
- 未回答的问题:{具体内容}
- 之前的承诺:{如有}
当前目的:{推进到下一步,例如:确认是否收到提案 / 约下次通话时间}
要求:
- 中文,简短,不超过 80 字正文
- 不要重复上封邮件的所有内容
- 如果是 3 天以上的跟进,先一句话刷新上下文
- 结尾一个明确问题或提议,不要 open-ended 收尾
返回格式:
Subject: Re: [原主题]
---
[正文]"LLM Prompt:
"起草一封会议确认邮件。
会议信息:
- 对象:{姓名} @ {公司}
- 时间:{日期 + 时间 + 时区}
- 形式:{视频会议/面谈,如视频则附链接}
- 议程重点:{1-2 个核心议题}
要求:
- 中文,简短,不超过 60 字正文
- 确认时间 + 附议程 + 如有附件说明
- 语气专业但不冷漠
返回格式:
Subject: 确认:{时间} 与 {对方公司} 的会议
---
[正文]"LLM Prompt:
"起草一封会后跟进邮件。
会议信息:
- 对象:{姓名} @ {公司}
- 会议时间:{刚才 / N 天前}
- 关键结论:{达成了什么共识}
- 我方下一步行动:{例如:发送方案文档 / 安排 demo}
- 对方下一步行动:{例如:内部讨论后反馈}
- 期望截止时间(如有):{具体日期}
要求:
- 中文,简洁,正文不超过 100 字
- 结构:感谢 + 关键共识一句话 + 双方后续行动 + 期望时间点
- 语气温暖,不催促
返回格式:
Subject: 跟进:关于 {核心议题}
---
[正文]"LLM Prompt:
"起草一封合作提案邮件,发给 {姓名} @ {公司}。
提案内容:
- 合作类型:{例如:数据服务 API 接入 / 渠道分销合作}
- 核心价值:{我们能解决他们的什么问题}
- 方案要点:{2-3 个关键条款或功能点}
- 报价(如有):{价格/商务条件}
- 附件:{如有方案 PDF 等}
背景:{是否有过会议讨论?对方的痛点是?}
要求:
- 中文
- Subject:直接说明提案内容,不用"关于合作"这类模糊标题
- 正文 4 段,总计 150-200 字:
段 1:背景引用(基于上次沟通的某个点)
段 2:方案概述 + 核心价值
段 3:关键条款或亮点(可用简短列表)
段 4:建议下一步(阅读附件 / 确认细节)
- 附上附件提示(如有)
返回格式:
Subject: [主题]
---
[正文]"LLM Prompt:
"起草一封接收引荐的邮件。
引荐信息:
- 引荐人:{姓名}
- 被引荐对象:{姓名} @ {公司}
- 引荐人的邮件内容摘要:{引荐语}
我的背景:{一句话介绍}
目的:{和被引荐对象想聊什么}
要求:
- 中文
- Subject:Re: [引荐人邮件主题](三方 CC 格式)
- 正文 3 段,100 字以内:
段 1:感谢引荐人(CC 他)
段 2:向新认识的人自我介绍 + 为什么有价值聊
段 3:提议具体时间通话或 CTA
- 语气:暖而不过分
返回格式:
To: {被引荐人邮箱}
CC: {引荐人邮箱}
Subject: Re: [原主题]
---
[正文]"通过 PATH 调用 wrapper,无需拼接脚本路径。
email-ops \
--to "{收件人邮箱}" \
--subject "{主题}" \
--body "{正文}"发送附件时使用同一个入口;多个附件重复传入 --attachment:
email-ops \
--to "{收件人邮箱}" \
--subject "{主题}" \
--body-file "/绝对路径/body.txt" \
--attachment "/绝对路径/方案.pdf" \
--attachment "/绝对路径/安装包.zip"--body 与 --body-file 二选一;多行正文先写入 UTF-8 文件,再使用 --body-file。SMTP_SERVER、SMTP_USER、SMTP_PASSWORD 必填;SMTP_PORT 默认 587(STARTTLS),465 使用 SSL;SMTP_FROM 可指定显示名和邮箱,未设置时使用 SMTP_USER。不要把凭据写进脚本、记忆或聊天。ok: true 表示 SMTP 服务器已接受发送,按返回的 from、to、subject、attachments 汇报。它不证明对方已收件或阅读。ok: false 时报告错误。SMTP 发送不会自动同步邮件客户端的 Sent 文件夹,不因 Sent 中不可见而重发。默认行为是起草,不发送。 只有用户明确说"发送"/"帮我发"时才执行发送。
MAIL OPS REPORT
───────────────
发件账号:
收件人:
邮件类型:
主题:
附件:
草稿:
[邮件正文]
状态:drafted / sent / blocked / awaiting-approval
后续建议:
- 若无回复,{N} 天后跟进
- 跟进方式:[邮件 / 微信 / LinkedIn]| 邮件类型 | 建议跟进等待期 |
|---|---|
| 首次触达 | 3-5 个工作日 |
| 发送提案后 | 2-3 个工作日 |
| 会后跟进 | 1 个工作日内 |
| 引荐接收 | 1-2 个工作日(趁热打铁) |
| 已跟进一次无回复 | 再等 5-7 天,改变切入角度 |
| 跟进两次无回复 | 暂停,换渠道或等新触机窗口 |
| 情况 | 处理方式 |
|---|---|
| SMTP 认证失败 | 停止,检查 SMTP_USER / SMTP_PASSWORD,告知用户 |
| 找不到现有线程 | 告知用户,确认是否以新邮件开始 |
| 用户说"发给他"但未给邮箱 | 先问清楚收件人邮箱,不猜 |
| 合作提案缺少关键信息 | 列出缺失项,请用户补充,不用模糊内容填充 |
| 正文文件或附件不可读 | 修正文件路径、权限或正文编码后再执行 |
TeamWiseFlow/xiaobei
47aea0b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.