将 email 转换为 RSS(以及如何搭设自建版本)

RSS极短简介

RSS内容摘要订阅现在虽然并不是大众主流,然而在接收和管理资讯方面,却始终拥有比其它任何方式(email、微信公众号、各种app……)更纯粹、更高效的优点。 只要拿到源站点的更新摘要 xml,就可以一站在手、天下我有。

个人使用 Tiny Tiny RSS【自建】 做为 RSS 阅读器,除了在电脑上可以用浏览器阅览,还可以在手机端用 Tiny Tiny RSS 安卓版【连接自建服务器】随时随地阅览。

RSS 可订阅的信息源

1、本身提供 RSS 的网站。

例如 什么值得买的 http://feed.smzdm.com/

2、即使网站没有提供原生RSS,也有大批热心技术型网友二创了海量的网站RSS,包括但不限于:B站、豆瓣、知乎、各大新闻网站 等等,汇总于 https://docs.rsshub.app/zh/routes  (可能需自带梯子观摩) 。这个 RSSHub 同样支持自建,以避免架梯和访问过频被堵的问题。

相关介绍可参见 我有特别的 RSS 使用技巧 - DIYgod 和RSS 速成篇 2:RSSHub 自部署 | LearnData-开源笔记。       

最后,它还配套有浏览器插件 RSSHub Radar,在浏览网页的同时,就能提示是否有原生 rss feed、或者已存在的 rss hub 订阅链接,方便一键订阅。

3、对于脑筋焊死了就是只提供邮件订阅的网站(常见于国外),个人选择将 email 转换为 rss。目前在用的是 Kill the Newsletter!,界面异常简洁:

只需要起个邮箱名字(之后会体现为 rss 标题),便能创建一个邮箱地址、和一个订阅地址:

接下来,邮箱地址喂给源头网站,自己的 rss 阅读器订阅那个 http 订阅地址,便能以 rss 的方式来阅读各种推送邮件了。(还顺便起到了保护个人隐私邮箱的效果)。

推而广之,很多源于国外的软件,也喜欢以邮件的方式发送通知,包括但不限于 nextcloud、群晖 DSM、自建服务器 cron 通知 等等。之前使用国内邮箱收通知,但要么过于分散、要么通知短信的广告覆盖过核心信息(某些运营商),于是索性都改为 email => rss。 不过,由于这些软件很多都是自建,信息较为私密,不希望推到公网的 Kill the Newsletter!,于是又自建了一个, 源地址在 https://github.com/leafac/kill-the-newsletter 。在实际应用时,有些需要注意的地方:

使用自建 kill-the-newsletter 的注意事项

起初的时候将 release 包下载后解压运行就用了,4000端口进 web 界面,建邮箱操作与公网相同。2525 端口是 smtp 接收端口。本机 ubuntu 用了 ssmtp 来管理(~=接管) smtp 发信配置。整套流程是 发信源(例如crontab 的 stderr 通知) 走 smtp 发信,经过 ssmtp 后捅到 kill-the-newsletter ,再转化为 RSS, 完美。

然后,在对接 nextcloud 时遇到个问题:kill-the-newsletter 启动时默认的邮箱域名是 @localhost,在 nextcloud 里不支持……

在官网也只说了句有配置在 configuration.js 需要修改,但是这个配置文件在 release 包和 源码里都找不到。

全网都搜不到明确的答案。最后在程序运行后自解压的 /tmp/caxa/kill-the-newsletter/dxvoiiwdvh/ 里找到了这个配置文件。

经过一番试验,最终确定下面的方法,可以让本机运行的 kill-the-newsletter 呈现任意邮箱域名。

module.exports = async (require) => {
  const path = require("path");
  const express = require("express");
  const AutoEncrypt = require("@small-tech/auto-encrypt");
  const killTheNewsletter = require(".").default;

  const { webApplication, emailApplication } = killTheNewsletter(
    path.join(__dirname, "data")
  );

  //*
  //webApplication.set("url", "http://kill-the-newsletter.com");
  // 只需要开这段就行了。域名任选
  webApplication.set("email", "smtp://my.great.name");
  //webApplication.set("administrator", "mailto:kill-the-newsletter@leafac.com");
  //*/

  const reverseProxy = express();
  reverseProxy.use((req, res, next) => {
    // 这段涉及重定向,建议注掉
    //if (req.hostname !== new URL(webApplication.get("url")).hostname)
    //  return res.redirect(`${webApplication.get("url")}${req.originalUrl}`);
    next();
  })
  .listen(4000)
  ;
  reverseProxy.use(webApplication);

  /*
  AutoEncrypt.https
    .createServer(
      {
        //domains: ["kill-the-newsletter.com", "www.kill-the-newsletter.com"],
        domains: ["localhost.nuc"],
        settingsPath: path.join(__dirname, "data/keys/tls"),
      },
      reverseProxy
    )
    .listen(4443);
    //*/

  emailApplication.listen(2525, () => {
    console.log("Email server started");
  });
};

运行时这样:

./kill-the-newsletter configuration.js

然后再创建邮箱。域名问题完美解决。

这样终于建好看上去“合法”的邮箱以后,再喂给无论 nextcloud 还是谁都没问题了。

最后发测试邮件,验证 RSS 阅读器里能刷到新内容就成了。

顺手附一下在群晖 DSM 里的配法:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值