来自rss-feed的电子邮件标题和链接,并通过电子邮件发送

时间:2011-02-08 15:06:12

标签: python feedparser

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

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

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

2 个答案:

答案 0 :(得分:0)

对于最简单的方法,请参阅python smtplib documentation example。 (我不会在这里重复代码。)这就是基本电子邮件发送所需的全部内容。

对于更好/更复杂的电子邮件内容,当然也会查看python的email module

答案 1 :(得分:0)

对于Feed解析部分,您可以考虑遵循此问题中有关How to detect changed and new items in an RSS feed?的建议。基本上,您可以散列每个条目的内容并将其用作id。

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

至于您的电子邮件汇编部分,问题Sending HTML email in Python可能有所帮助。只需确保只发送一个文本和一个html版本。