[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1sh9x3euiis38":3},{"code":4,"message":5,"data":6,"timestamp":45},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":22,"summary_md":23,"topic":24,"github_topics":27,"license":41,"homepage":42,"updated_at":43,"history":44},"marclou\u002Fmailcheap",9,"Newsletters where you pay for the emails you send, not for dormant subscribers, at a fraction of the price of beehiiv and the like. Open source: self-host it, or use mailcheap.ai.","JavaScript",1391,364,98,14,[16],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},50033695,"MailCheap: Self-hosted newsletters on Amazon SES. About $0.10 per 1k emails",2,0,"2026-10-10","按发送量而非订阅数计费的开源 Newsletter 应用，适合想离开 beehiiv、Substack 且愿意自己处理发信基础设施的作者。","一个可以自托管的 Newsletter 应用，成本按实际发出的邮件计，而不是按名单人数计。已经掌握发信基础设施、希望整条链路在自己手里的人值得认真试；只想让别人负责送达率的人则不适合。\n\n## 解决什么问题\n\n一个有 1 万读者的作者，即使大多数人几个月没打开过邮件，也要按全部订阅者向平台付费。想换平台，又得手工重建归档、注册表单和导入状态，或者接受另一份按订阅者计费的账单。MailCheap 改的是这一步：beehiiv、Substack、Mailchimp 等平台的 CSV 导出可以原样导入，保留每位读者的状态和注册时间，再通过自己的 Amazon SES 或 PostShiba 账户发信。最后得到的是：一期内容可以撰写、审阅、发送、发布成网页并推送，价格跟着服务商的发送量走，而不是跟着平台的订阅人数走。\n\n## 有什么不同\n\n它的机制刻意做得很薄。仪表盘里的每个操作，同时也以 MCP 工具和 REST API 调用的形式存在，检查与限制相同，因此 AI agent 可以起草、审阅并触发发送。MCP 把发送标记为不可撤销操作，agent 发信前会先问你。每个 Newsletter 都自带网站：云端版给一个免费的 `\u003Cslug>.mailcheap.ai` 子域，自托管则在自家服务器的 `\u002Farchive\u002F\u003Cslug>`，每期都有可被抓取的页面，还有注册表单和 sitemap。\n\n取舍主要体现在送达率上。MailCheap 为每个账户在服务商那边创建独立租户，各有自己的域名、抑制名单和暂停开关，并引导你配置 DKIM、return path 和 DMARC，还逐条检查记录。原来由平台承担的工作，现在转移到了你身上：DNS 记录写错或服务商事件配错，就是你自己的问题，而不是客服工单。发送前的检查会核对主题、预览文本、退订链接、Gmail 100 KB 截断限制、邮寄地址和发件人，能挡住常见错误，但不会让名单本身变干净。\n\n## 谁值得试\n\n适合：本来就懂技术、已经在用或愿意学 Amazon SES 的作者；希望归档和注册页放在自己域名下；比起每月按订阅档位付费，更愿意按每千封 $0.10–0.16 付费。自托管还支持一台服务器上多个账户，每人最多 3 个 Newsletter，没有账单系统。\n\n不适合：离开原平台的主要目的就是不想再操心邮件基础设施的人。云端版正是为这类人准备的，迁移前最该看的是它的套餐限制（每月邮件数和活跃订阅者数）。偶尔发一次信的独立作者，用托管服务可能更省时间。\n\n## 使用条件与边界\n\n自托管需要 Node.js 22 或更高版本、一个 MongoDB 数据库、Vercel 之类的主机，以及用于后台发送和定时的 Upstash QStash（一条 QStash 消息发 50 封邮件），再加一个 SES 或 PostShiba 发信账户。SES 新账户默认在沙箱里，每天只能向已验证的收件人发 200 封，直到 AWS 批准生产权限；README 建议单独开一个 AWS 账户，因为信誉和限额是按账户计算的。PostShiba 目前仅限邀请，所以自托管实际上主要走 SES。\n\n两个密钥需要小心处理。`BETTER_AUTH_SECRET` 用于签名会话和已发出邮件里的链接：轮换它会让所有人退出登录，并让那些链接失效。`SUPPRESSION_HASH_KEY` 是共享的永不发送名单的哈希密钥，必须是另一个值；改动它会清空该名单。登录只允许 `ADMIN_EMAILS` 和 `ALLOWED_EMAILS` 中的地址与域名；两个都为空时没人能登录。AGPL-3.0 许可要求：如果你修改后给别人用，需要向他们提供你这一版的源码。安装步骤见[项目 README](https:\u002F\u002Fgithub.com\u002Fmarclou\u002Fmailcheap)和 [API 文档](https:\u002F\u002Fmailcheap.ai\u002Fdocs)。\n\n## HotRepo 点评\n\nHotRepo 首次记录这个仓库是在 2026-10-24，距创建 14 天，当时共 1,391 颗星，在 JavaScript 新项目榜上排第 9——这只是新仓库的一次快照，不是单日增长。没有可比的每日榜单历史，因此仅凭 HotRepo 信号还无法判断热度能否延续。在把名单迁过来之前，先确认 SES 的生产权限申请流程，以及 README 里说只需配置一次的服务商事件设置。",{"slug":25,"name":26},"productivity","效率与系统工具",[28,29,30,31,32,33,34,35,36,37,38,39,40],"ai-agents","amazon-ses","beehiiv-alternative","email","email-marketing","mailchimp-alternative","mcp","mcp-server","mongodb","newsletter","nextjs","self-hosted","substack-alternative","AGPL-3.0","https:\u002F\u002Fmailcheap.ai","2026-10-25T03:29:16Z",[],1792918410]