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 里的配法: