如何使用 poplib,并从 Python 中的 email 模块的 email.Message 类下载邮件作为消息实例?
我正在编写一个程序,该程序分析所有电子邮件以获取特定信息,并将部分消息存储到数据库中。我可以将整个邮件作为文本下载,但是通过文本搜索附件很困难。
想法是解析消息以获取信息
使用模块中的FeedParser
类根据从服务器读取的消息email.feedparser
构造一个对象。email.Message
poplib
具体来说:
import poplib
import email
pop = poplib.POP3( "server..." )
[establish connection, authenticate, ...]
raw = pop.retr( 1 )
pop.close()
parser = email.parser.FeedParser()
for line in raw[1]:
parser.feed( str( line+b'\n', 'us-ascii' ) )
message = parser.close()
不处理像 Adrien Plisson's answer 这样的字符集问题。
import poplib
import email
pop = poplib.POP3( "server..." )
[establish connection, authenticate, ...]
raw = pop.retr( 1 )
pop.close()
message = email.message_from_string('\n'.join(raw[1]))