Cold Email Engine
Automated outbound email pipeline: find leads → enrich contacts → send personalized emails → drip follow-ups.
Pipeline
- 1. Source leads — from CSV, Google Sheets, API scraping, or manual input
- Enrich — find emails via website scraping, Hunter.io, or Apollo
- Personalize — variable substitution in templates ({name}, {company}, {pain_point})
- Send — via Resend, SendGrid, or raw SMTP with rate limiting
- Drip — automated follow-ups at day 3 and day 7
- Track — log all sends, bounces, replies to CSV/Sheets
Requirements
- - Email provider API key — Resend (
RESEND_API_KEY), SendGrid, or SMTP credentials - Verified sending domain — with SPF, DKIM, DMARC configured
- Lead source — CSV file, Google Sheet ID, or API endpoint
Quick Start
CODEBLOCK0
Configuration
Edit scripts/config.json:
- -
maxPerDay: Daily send limit per domain (default: 25) - INLINECODE3 : Delay between emails in ms (default: 3000)
- INLINECODE4 : Follow-up schedule [3, 7] days after initial send
- INLINECODE5 : Path to suppression/unsubscribe list
- INLINECODE6 : Path to send log
Templates
Templates use {variable} syntax. Available variables:
- -
{first_name}, {last_name}, INLINECODE10 - INLINECODE11 ,
{website}, {city}, INLINECODE14 - INLINECODE15 — auto-generated from website analysis
- INLINECODE16 , INLINECODE17
Template Example
CODEBLOCK1
Compliance
- - CAN-SPAM: physical address in footer, unsubscribe mechanism
- GDPR: only email businesses (B2B exemption), honor removal requests
- Rate limits: 25/day per domain, 3-second delay between sends
- Suppression list checked before every send
Scripts
- -
scripts/cold-email-engine.js — Main send engine - INLINECODE19 — Email finder from websites/domains
- INLINECODE20 — Configuration
References
- - See
references/deliverability.md for domain warmup and inbox placement - See
references/templates.md for proven email templates by industry
冷邮件引擎
自动化外发邮件流程:寻找线索 → 丰富联系人 → 发送个性化邮件 → 自动跟进。
流程
- 1. 获取线索 — 来自CSV文件、Google Sheets、API抓取或手动输入
- 丰富信息 — 通过网站抓取、Hunter.io或Apollo查找邮箱
- 个性化 — 模板中的变量替换({姓名}、{公司}、{痛点})
- 发送 — 通过Resend、SendGrid或原始SMTP,带速率限制
- 跟进 — 第3天和第7天自动跟进
- 追踪 — 将所有发送、退回、回复记录到CSV/Sheets
要求
- - 邮件服务商API密钥 — Resend(RESENDAPIKEY)、SendGrid或SMTP凭据
- 已验证的发送域名 — 已配置SPF、DKIM、DMARC
- 线索来源 — CSV文件、Google Sheet ID或API端点
快速开始
bash
设置环境变量
export RESEND
APIKEY=你的密钥
从CSV发送
node scripts/cold-email-engine.js --source leads.csv --template templates/default.txt --from 姓名
试运行(不实际发送邮件)
node scripts/cold-email-engine.js --source leads.csv --template templates/default.txt --dry-run
运行跟进流程
node scripts/cold-email-engine.js --drip --days 3
配置
编辑 scripts/config.json:
- - maxPerDay:每个域名每日发送上限(默认:25)
- delayBetweenMs:邮件发送间隔毫秒数(默认:3000)
- dripDays:跟进计划,首次发送后第[3, 7]天
- suppressionFile:屏蔽/退订列表路径
- trackingFile:发送日志路径
模板
模板使用{变量}语法。可用变量:
- - {firstname}、{lastname}、{email}
- {company}、{website}、{city}、{state}
- {painpoint} — 根据网站分析自动生成
- {sendername}、{sender_title}
模板示例
主题:{company} — 快速咨询
你好 {first_name},
我注意到{company}{pain_point}。我们帮助像贵公司这样的企业
在一周内解决这个问题。
本周能否抽出10分钟聊一聊?
{sender_name}
{sender_title}
合规要求
- - CAN-SPAM:页脚包含实体地址、退订机制
- GDPR:仅向企业发送邮件(B2B豁免),尊重移除请求
- 速率限制:每个域名每天25封,发送间隔3秒
- 每次发送前检查屏蔽列表
脚本
- - scripts/cold-email-engine.js — 主发送引擎
- scripts/enrich-leads.js — 从网站/域名查找邮箱
- scripts/config.json — 配置文件
参考
- - 参见 references/deliverability.md 了解域名预热和收件箱投递
- 参见 references/templates.md 了解按行业分类的已验证邮件模板