从电子邮件收件箱中提取 URL



好的,我正在尝试做的事情有些混乱,所以我再次这样做。 我希望编写一个脚本来针对我的收件箱运行,该脚本将在电子邮件正文中为我提供发件人地址、主题和 URL。 我遇到的问题是脚本的 URL 解析正在从电子邮件中提取所有 URL,而不仅仅是从正文中提取一个 URL。 这是一个例子

收件人: Tom@mail.com

寄件人: Joe@test.com

主题:确认您的考试成绩

请转到以下 URL 以确认您的考试成绩。 WWW.test.com/confirmation再次感谢您的输入。

签署

乔(乔斯签名的一部分有图像)图像的网址是http://www.test.com/wp-content/uploads/_client_image/66-dcfc0fc8.png

我希望我的输出是

寄件人: Joe@test.com

主题:确认您的考试成绩

网址: WWW.test.com/confirmation

我得到这个

寄件人: Joe@test.com

主题:计算考试成绩

网址: WWW.test.com/confirmation, http://www.test.com/wp-content/uploads/_client_image/66-dcfc0fc8.png

这是我的脚本

import re
import mailbox
import urlparse
mbx=mailbox.mbox("Mail Box Path")
url_pattern = re.compile('''["']http://[^+]*?['"]''')
for k, m in mbx.iteritems():
    print "From %sn" % m['from']
    print "Subject %sn" % m['subject']
    print "URL %sn" % url_pattern.findall(m.as_string())

签名算作电子邮件的正文 - 因此您无法真正将它们分开。

如果您确定电子邮件中只有一个您关心的链接,您可以尝试只查看您匹配的第一个 URL - 但没有一种(可靠的)方法来确保您只与电子邮件的正文交互,而不是签名。

有人甚至就此写了一篇论文 - 这是非常困难的,尤其是当您无法控制正在处理的电子邮件的格式时。

相关内容

  • 没有找到相关文章

最新更新