headers = {}
for line in response[1]:
if line == "":
break
line = line.partition(" ")
key = line[0].strip().rstrip(":")
value = line[2].stirp()
headers.setdefault(key, []).append(value)
import email
# convert our message back to a string and parse it
headers = email.parsefromstring("\n".join(response[0]), headersonly=True)
print headers["From"] # prints the sender
下面是如何使用imaplib获取GMail收件箱中每封邮件的主题和发件人。在
你可能需要更多的信息。从official imaplib documentation开始。在
从documentation:
因此,假设您已经将
^{pr2}$retr()
的结果放入一个名为response
的变量中,消息的行将作为一个列表存储在response[1]
中。通过RFC 2822我们知道消息头与消息体之间用一个空行隔开。消息的发送者将在From:
标题行中。因此,我们可以迭代消息的行,当我们得到一个空行时停止,当我们看到以From:
开头的行时,为发送方设置一个变量。在如果您计划对头进行大量处理,那么按头名称将它们放入字典可能会很有用。因为每个标题可以出现多次,所以字典中的每个值都应该是一个列表。在
在此之后,您可以使用
headers["From"][0]
获取消息的发送者。在我想展示一下实现这一点的基本方法,因为它不是很复杂,但是Python可以为您完成大部分工作。同样,假设您的
retr()
结果是response
:您可以在email module的文档中找到有关message对象的更多信息。在
电子邮件消息的
From:
行除了电子邮件地址之外,可能还有其他文本,例如发件人的姓名。您可以使用正则表达式提取电子邮件地址:有模块rfc822
我想poplib的消息可以从服务器加载。在
然后归档
然后传给
^{pr2}$试试这个。。还可以查看模块文档。 我希望有帮助。在
还有另一个python模块:
这将为您提供对头的读取权限,并支持正文内容的多种格式。在
相关问题 更多 >
编程相关推荐