mail2rss icon indicating copy to clipboard operation
mail2rss copied to clipboard

0 成本的邮件转RSS订阅(zero cost method for converting newsletter to RSS). Power by testmail.app and cloudflare workers

mail2rss

English version goes here.


0 成本的邮件转 RSS 做法。 使用 cloudflare workerstestmail.app

cloudflare workers 每天免费请求量 100,000 次。
testmail.app 免费版每个月可以接收 100 封邮件,邮件可以保存一天。

也就是说,只要你的RSS阅读器请求频率小于一天,你都能毫无遗漏的接收每一封邮件。

如何使用

mailrss.js 的内容复制到 cloudflare workers 的代码中,填好前面几行的内容,部署即可。

const allowAnyTag = true; // 允许任意的 tag
const allowedTags = ["quartz"]; // 允许请求的 tag(需要关掉上一条这个才生效)
const testmailNamespace = "xxxxx"; // testmail 的 namespace
const testmailToken = "xxxxxxxxxxxxxxx"; // testmail 的 api key
const deployUrl = "https://xxx.xxx.workers.dev/"; // 要部署到的 workers 的域名

deploy 到 workers 之后,你可以用 {namespace}.{tag}@inbox.testmail.app 去订阅邮件,然后订阅 https://xxx.xxx.workers.dev/{tag} 就可以啦。

假如我的 namespace 是 diyyy,那我就可以用 [email protected] 这个邮箱来订阅 Quartz,然后订阅 https://xxx.xxx.workers.dev/quartz 即可。

如果你希望设置一个 tag 白名单,那就设置 allowAnyTagfalse,将需要的 tag 添加到第二行 allowedTags 里。

注册 testmail.app

testmail 能帮我们接收邮件,免费版每个月可以接收 100 封邮件,邮件内容可以保存一天。

每个人注册后会获取专属的 namespace,通过 namespace 可以构造不同的邮件地址。

假设我的 namespace 是 diyyy,我们可以构造这样的邮件地址 diyyy.{tag}@inbox.testmail.app{tag} 可以任意填。

比如,我们可以用 [email protected] 订阅 Quartz 的 newsletter,用 [email protected] 来订阅 Stefan's web dev journey。

testmail 提供了很丰富的 api,获取邮件包括过滤 tag,匹配 tag 前缀,限制获取数量,还支持 GraphQL 查询。

官方文档在这儿:https://testmail.app/docs/

注册登录后,在 https://testmail.app/console 可以看到自己的 namespace 和 api keys,这两个都是我们需要的。

部署到 Cloudflare Workers

首先你要有 cloudflare 的帐号。然后复制代码到 Cloudflare Workers 的代码编辑器中,修改相应信息即可。

详细教程没有,可参考 简易部署教程:Cloudflare-Workers

就只是复制代码过去而已。