2
我遇到了一个非常奇怪的错误。将电子邮件存入mongodb
for emailid in item_ids:
resp, data = conn.fetch(emailid, "(RFC822)")
try:
db.emails.insert({'raw': data})
所以我从gmail使用oauth2.clients.imap获取一堆数据。从gmail获取电子邮件后,我决定首先在我的MongoDB中将其存储为“raw”。
然后在我的脚本的另一部分,我做这样的事情:
for i,j in enumerate(db.emails.find()):
raw_s = j['raw'][0][1]
email = email_module.message_from_string(raw_s)
if email.is_multipart():
print get_cleaned_body(email)
注意,我做了import email as email_module
和阴影变量的电子邮件,因为我想不出更好的词了一个变量举一个电子邮件实例
现在奇怪的是,我的电子邮件实例都不是多部分!
如果我修改我的检索代码为:
for emailid in item_ids:
resp, data = conn.fetch(emailid, "(RFC822)")
try:
#db.emails.insert({'raw': data})
e = email.message_from_string(data[0][1])
print e.is_multipart()
我看到了几个True
秒。
我想这可能是一个可能的解释是,将数据保存到mongodb messes一些不允许电子邮件被正确解析?
mongo中的数据是什么样的?据推测,当你收到一个多部分电子邮件,它不是纯文本,但你要保存为纯文本mongo。 – werkshy