好的,我尝试做的事情有些困惑,所以我重新做一遍。我正在寻找一个脚本来运行我的收件箱,它将在电子邮件正文中为我提供发件人地址、主题和 URL。我遇到的问题是脚本的 URL 解析是从电子邮件中提取所有 URL,而不仅仅是从正文中提取的 URL。这是一个例子
收件人:Tom@mail.com
发件人:Joe@test.com
主题:确认你的考试成绩
请到以下网址确认您的考试成绩。 WWW.test.com/confirmation 再次感谢您的意见。
已签名
乔 (部分Joes签名有图) 图片的网址是 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 %s\n" % m['from']
print "Subject %s\n" % m['subject']
print "URL %s\n" % url_pattern.findall(m.as_string())
请您参考如下方法:
签名算作电子邮件的正文 - 因此您无法真正将它们分开。
如果您确定电子邮件中只有一个您关心的链接,您可以尝试只查看您匹配的第一个 URL - 但没有(可靠的)方法来确保您是仅与电子邮件正文交互,而不与签名交互。
Someone even wrote a paper on this - 这非常困难,尤其是当您无法控制所处理电子邮件的格式时。
