大家好,我是NowScott。

前言

在写这篇文章之前,我自己部署的这个工具已经平稳的运行了超过300天,也验证了这个工具的可靠程度。

每日科技早报

同时期做的利用公众号每天发送恋爱天数的工具已经因为出了几次问题,被我用快捷指令替换掉了,如果有对这个感兴趣的也可以评论告诉我,人多的话我就单独写一期。(但是少数派应该人均快捷指令大佬吧😂)

创建初衷

小时候,家中的长辈常订阅报纸。然而随着时代的变迁,报纸逐渐退出我们的视野,被无处不在的互联网新闻取而代之。

在这个广袤的信息海洋中,琳琅满目且杂乱无章,包含了大量的信息。但实际上,我想要了解的内容并不多。

因此,我创建了这个工具,每天自动将科技新闻发送到我的邮箱。

这样,我就不再淹没在大量信息中,而是像过去阅读报纸时一样,只专注阅读我最感兴趣的那个部分。

工具介绍

这个工具的项目地址是:https://github.com/NowScott/EverydayTechNews

因为要避免暴露邮箱,所以真正每天在运行的工具在另外一个私有项目中,本项目的目的在于帮助同样有这个需求的朋友们搭建这样一个小工具。

这个自动发送新闻到邮箱的小工具是基于python开发的,主函数是根目录下的main.py文件,然后配置文件是根目录下的config.json。

工具部署

这个小工具重新部署起来非常简单,如果你也和我一样,只需要每天看30条科技新闻的话,那么只需要更改配置文件就好。

由于Fork的项目不能设为私有,所以你需要新建一个私有项目(防止你的邮箱公开,收信的邮箱还好,主要是发信的那个邮箱,账号密码都在配置文件中)。

然后把我这个项目中的文件下载下来,然后上传到你新建的项目中。

config.json文件如下所示

{
    "sender": "send_email@example.com",
    "password": "smtp_password",
    "server": "smtp.163.com",
    "receivers": [
        "receive_email@example.com"
        ]
}

对config.json做如下更改:

  1. 打开smtp选项,在sender后面输入邮箱地址,并将从SMTP获取的密码放入password字段中。
  2. 关于服务器(server),它取决于您使用的电子邮件地址。这里我提供了使用网易163邮箱地址的示例。其他常用电子邮件提供商的服务器地址参考这个网页中的内容:YangCheney's blog
  3. 我将接收者(receivers)设置为一个列表,这意味着您不仅可以包括自己的邮箱地址,还可以包括朋友的邮箱地址。这样可以共享和讨论相互感兴趣的内容。

更改完配置信息之后找到.github/workflows/technews.yml这个文件

将第四行和第五行取消注释(因为这个项目是一个示例项目,所以无法运行)。这部分代码的含义是在格林尼治时间(UTC)的每天零点(midnight)执行,换算成北京时间需要加8个小时,即早上8点左右开始执行。然而并非完全准确,一般会在8点45左右结束。有关 cron 的详细规则,请参考这个网站:https://tool.lu/crontab/

接着在上方找到Action,左侧点击technews,右侧找到run workflow尝试运行,如果在下方的运行中没有报错而且邮件能正常发送,那么就成功了。

Action
technews
Run workflow

但是如果你和我不同,需要其他版块的新闻,可能要麻烦一些。

由于其他版块的排版和科技的不尽相同,所以更换版块意味着要重新写页面解析部分的代码,去找到符合你口味的新闻,我这里就不过多赘述了。

一些说明

  1. 使用网易新闻的原因完全是因为页面解析简单
  2. 本文旨在提供思路和教新手操作,大佬不用在意我说的操作
  3. 本文的头图是用figma做的,第一次用还不太熟练😂
  4. 如果有哪里说的不对欢迎评论指出,有问题也可以给我发邮件:nowscott@qq.com

那么这就是本文的全部内容了,我是NowScott,我们下期再见。

在结尾附上前一篇文章的链接:教你搭建个人索引网站