Rss2email

Posted on Jun 23, 2020

距离上次从 https://blogtrottr.com 迁移 rss 订阅到 feedly 差不多五六年了, 这会网络不可用的状况又变得严重些,干脆还是用自建服务来接收感兴趣的内容, 当然备选方案也不少:

出于复古心理顺便减少对应的 app 安装选择问题,又选择了回归 email 方式订阅更新

安装配置

rss2email 的安装到简单,参考 官方文档 直接 apt install rss2email,默认配置会发送文本邮件,修改 html-mail=True, 在我的环境里 smtp over sendgrid 很容易超配额,sendmail 基本发送不出去, 就配上 imap.google 账户自己发给自己啦~

从 feedly 导出 opml 文件然后 r2e opmlimport 完事大吉

需要注意的是,在 r2e run 的执行过程中对配置文件进行修改非常容易被覆盖 1,不要同时搞太多操作就好,

update: 2020-09-18 17:34:49

修改参数 force-from = True,默认会从 feed 里优先提取作者或者发布站点的邮箱,导致 gmail 过滤器失败

定时任务

现代 linux 发行版本(比如这里用的 ubuntu 20.04),默认不带 cronjob 服务,改为 systemd 来管理各种服务,定时任务的写法稍微麻烦了些,先用当前 user 权限来 $HOME/.config/systemd/user 写入定时任务配置

定时器 rss2email.timer

[Unit]
Description=rss2email

[Service]
Type=oneshot
ExecStart=/usr/bin/r2e run

执行文件 rss2email.service

[Timer]
OnCalendar=00/3:00
Unit=rss2email.service
[Install]
WantedBy=multi-user.target

启动服务

systemctl --user daemon-reload
systemctl --user enable rss2email.timer
systemctl --user start rss2email.timer

systemctl --user list-timers
NEXT                        LEFT          LAST PASSED UNIT            ACTIVATES
Tue 2020-06-23 12:00:00 UTC 1h 32min left n/a  n/a    rss2email.timer rss2email.service

定制邮件样式

默认的 configparser 参数会将 # 设为注释,于是 rss2email/config.py$HOME/.config/rss2email.cfg 中关于 #entry {...} #body {...} 这几行一直显示不出来,临时解决方案把它们合并成一行可以先凑合着

css = ...
    .footer {
    background: #c3d9ff;
    border-top: solid 4px #c3d9ff;
    padding: 5px;
    margin-bottom: 0px;
    } #entry { border: solid 4px #c3d9ff; } #body { margin-left: 5px; margin-right: 5px; }
    img { max-width: 90% } /* 避免邮件里展示原图将页面撑得太宽 */

Lines removed in stylesheet and optionally link to external one