开发信最容易出的问题,通常不是英文不够漂亮,而是把没确认的交期、认证、运费或性能写成了事实。稳妥的做法是先整理一张可核对的事实卡,再让模型按场景起草,最后逐句对照事实卡和收件人的原话。
本文在本机 Ollama / Qwen3.8-27B 上,用一组完全虚构的茶滤产品资料跑了三种场景:初次联系、买家询问规格、买家要求退订。没有连接邮箱、查找真实买家或发送邮件。原始模型输出、第一轮问题、改过提示后的第二轮结果,以及人工校订稿都放在练习包中。
1. 先写事实卡,再写邮件
练习包的 input/product-facts.json 列出卖方、买方和商品已知信息,并把缺项单独放进 not_provided。本例只使用以下虚构资料:
| 字段 | 已知事实 |
|---|---|
| 产品 | ZK-04 不锈钢茶滤套装,304 不锈钢;含茶滤、滴水托盘和收纳盒 |
| 包装数量 | 每套净重 180 克;每箱 48 套 |
| 报价 | 每套 USD 4.80,EXW 宁波;MOQ 240 套 |
| 样品 | 标示价格 USD 7;报价单位/口径未说明;运费由买家另付,金额未知 |
| 未提供 | 生产交期、库存、目的地运费与到货日、食品接触测试或认证、颜色定制、保修和客户案例 |
真实业务中,先从已经确认的报价单、产品规格表和公司政策填事实卡。贸易术语要和报价依据、指定地点及当前版本一致;单位、币种、MOQ、样品费和运费分别核对。资料缺失就写“待内部确认”,不要让模型用常识补齐。
2. 在本机生成三种草稿
练习包的 generate_outreach.py 通过 Ollama Chat API 请求结构化 JSON,并把提示词、模型原文、解析结果、耗时和 token 计数保存到 output/model-run.json。先确保本机已经有模型并且 Ollama 正在运行:
ollama list
python3 generate_outreach.py --self-check
python3 generate_outreach.py --run
默认调用 qwen3.8-27b:latest,地址限定在 127.0.0.1。脚本不读取通讯录、不连接邮箱,也没有发送功能。运行后先打开原始结果,不要把 JSON 校验通过误当成内容已验收。
本次测试在 M1 Max 64GB、Ollama 0.35.1 和 Qwen3.8-27B 上运行。第一轮三种场景共 98.3 秒,输入/输出 1,345/927 tokens;发现初次联系稿暗示已了解买家、声称样品可提供,还建议直接发送。增加提示约束后第二轮共 75.2 秒,输入/输出 1,510/866 tokens;模型不再暗示调查过买家,但仍将“样品报价”扩写成“样品可提供”,询价回复也漏列样品运费缺项。原始两轮结果都保留。人工复核时,逐项比对 facts_used,再检查 unknowns 是否涵盖所有被问到但没有提供的资料;最终只使用练习包 output/approved-drafts.json 中人工修订的版本。
3. 冷开发信:说清来意,不编关系
初次联系邮件应让收件人知道写信人是谁、为什么联系、提供什么下一步选择。不能暗示见过面、收到过询价或看过对方的非公开资料。对方业务背景也要有可核实来源;本例的买家和公司都是虚构角色,只是练习卡设定,不是公开调查结果。
检查草稿:
- 主题与正文一致,不写虚假的
Re:或“最后通知”。 - 公司名、产品名和已确认规格与事实卡完全一致。
- 只提出一个低压力、可拒绝的下一步,例如询问是否愿意查看规格表。
- 删除没有证据的“行业领先”“畅销”“环保”“耐用”或效果承诺。
- 核对发件人身份和适用市场所需的退订信息;确认规则后再考虑发送。
4. 询价回复:逐条答,未知项明确待核
练习中的买家询问 MOQ、样品价、每箱数量、可用认证,以及发往温哥华的预计到货日期。前三项可以从事实卡回答;认证情况和目的地到货日没有提供,草稿必须说明需要内部确认,不能把“暂无资料”改写成肯定答案。
回复前可用这张核对表:
| 买家问题 | 本例可写的内容 | 发送前要补的核对 |
|---|---|---|
| MOQ | 240 套 | 确认报价有效期和适用型号 |
| 样品价格 | 标示 USD 7,报价单位/口径未提供 | 确认报价适用单位、样品是否可提供、样品运费、支付方式和可寄送地区 |
| 箱规 | 每箱 48 套 | 确认外箱尺寸、毛重和装箱方式是否可提供 |
| 认证 | 事实卡未提供 | 向质量/供应链负责人确认,避免写“有”或“符合” |
| 温哥华到货日期 | 事实卡未提供 | 先确认生产交期、运输方案、费用和清关边界 |
人工修订后的回复片段如下。它没有猜证书或到货日期,也没有承诺某天跟进:
Subject: Re: ZK-04 Stainless Steel Tea Filter Set
Dear Alex,
The minimum order quantity is 240 sets, and each carton contains 48 sets.
The fact card lists a sample price of USD 7, but does not specify the quote basis.
Sample freight is payable by the buyer; the amount has not been provided.
We do not yet have confirmed information about certificates or the estimated
arrival date to Vancouver, so I cannot provide those details in this reply.
这是虚构练习中的正文片段,不是完整可发送邮件。实际营销邮件还需按适用规则补齐发件身份、广告识别、有效邮寄地址和退订方式,并由业务人员完成内部确认。
EXW 报价不应被改写成含目的地运费或送达承诺。若报价、库存或交期在正式回复前发生变化,重新核对,不要沿用旧事实卡。
5. 退订请求:停止营销并留下记录
买家说“请从营销名单中删除,不要再联系”时,回复应简短确认,不追加产品介绍、折扣或“最后一个问题”。同时按组织流程记录拒联状态,并让后续活动使用抑制名单,避免重新导入后再次触达。任何法定或交易必需通知的处理,要按适用规则另行确认,不能借此继续发送营销内容。
6. 先核规则,再发送
邮件营销要求会随收件人类型、地区、数据来源和用途变化,不能把一国规则当作全球清单。美国 FTC 指南说明 CAN-SPAM 也涵盖 B2B 商业邮件,并列出真实发件信息与主题、广告识别、邮寄地址、退订方式及及时处理退订等要求。查看 FTC 指南
英国 ICO 的说明区分公司订阅者与个体经营者等类别;即使是工作邮箱,联系人信息仍可能涉及个人数据。该 B2B 指引目前标注因《Data (Use and Access) Act》而复核中,可能变化;发送前应根据收件人类别、数据来源和具体用途核对 PECR 与 UK GDPR 义务,并尊重反对营销的请求。查看 ICO 的 B2B 营销说明 · 查看 ICO 电子邮件营销指南
发送前最终检查
| 检查项 | 确认内容 |
|---|---|
| 身份 | 发件人、公司和收件人信息真实,联系来源符合内部流程 |
| 事实 | 价格、币种、术语地点、MOQ、包装、样品与运费都已复核 |
| 未知项 | 认证、交期、库存、目的地费用等均已确认或仍明确待确认 |
| 内容 | 无虚假关系、未经证实的性能/环保比较或误导性主题 |
| 发送规则 | 按目标市场、收件人类别和数据来源检查同意、身份、地址及退订要求 |
| 拒联 | 退订已记录,营销名单及后续触达流程已同步抑制 |
这次本机测试只验证了虚构资料下的草稿生成流程,不证明真实商品信息、收件人名单、英文语气或具体营销活动合法。由业务人员逐项核对并取得必要批准后,才可通过公司认可的邮件系统另行发送。