0

我正在用 Python 做一些实验。我正在制作一个脚本来检查新项目的 rss-feed,然后通过电子邮件发送项目的标题和链接。我已经让脚本工作到一定程度:当它运行时,它将获取最新项目的链接+标题并通过电子邮件发送它,无论它是否已经通过电子邮件发送了该文件。我需要添加两件事:一次获取多个项目的方法(并通过电子邮件逐个发送),以及检查它们是否已经发送的方法。我该怎么做?我正在使用 feedparser,这是我到目前为止所拥有的:

d = feedparser.parse('http://feedparser.org/docs/examples/rss20.xml')
link = d.entries[0].link
title = d.entries[0].title

然后是几行发送一封带有“链接”和“标题”的电子邮件。我知道我需要使用 Etag,但无法弄清楚如何以及如何逐一发送电子邮件?

4

2 回答 2

0

对于提要解析部分,您可以考虑遵循此问题中给出的有关如何检测 RSS 提要中更改的项目和新项目的建议?. 基本上,您可以散列每个条目的内容并将其用作 id。

例如,在您的程序第一次运行时,它将计算每个条目的哈希值,存储该哈希值,并通过邮件发送这些新条目。在下一次运行时,它将重新散列每个条目的内容并将这些散列与之前找到的散列进行比较(您应该为此使用某种数据库,或者在使用已解析和发送的条目进行开发时至少使用内存字典/列表) . 如果您的程序发现以前运行时未生成的哈希值,它将组装一封新电子邮件并将其与“新”条目一起发送。

至于您的电子邮件组装部分,在 Python 中发送 HTML 电子邮件的问题可能会有所帮助。只需确保仅发送文本和 html 版本即可。

于 2011-02-08T15:43:07.080 回答
0

有关最简单的方法,请参阅 python smtplib 文档示例。(我不会在这里重复代码。)这是您发送基本电子邮件所需的全部内容。

对于更好/更复杂的电子邮件内容,当然也可以查看 python 的电子邮件模块

于 2011-02-08T15:31:26.203 回答