本当に奇妙なバグに遭遇しています。電子メールをmongodbに保存する
for emailid in item_ids:
resp, data = conn.fetch(emailid, "(RFC822)")
try:
db.emails.insert({'raw': data})
したがって、oauth2.clients.imapを使用してgmailからデータを取得しています。 gmailから電子メールを取得した後、私はmongodbで最初に "未加工"として保存することに決めました。
そして私のスクリプトの別の部分で、私はこのような何か:私はimport email as email_module
を行なったし、私は、変数のためのより良い用語を考えることができないとして、変数のメールを陰に
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)
注意をメールのインスタンスを保持
これは奇妙なことですが、私の電子メールのインスタンスはマルチパートです!
私はあることを私の検索コードを変更する場合:
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にデータを保存すると電子メールが正しく解析されないものが壊れることが考えられます。
mongoではどのようなデータが表示されますか?多分あなたがマルチパートのメールを受け取ったとき、それは普通のテキストではないかもしれませんが、それをmongoにプレーンテキストとして保存しています。 – werkshy