(Jan-26-2019, 08:26 PM)Larz60+ Wrote: [ -> ]Fixed indentation (PEP8 - 4 spaces per indent level)
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myemail', 'password')
mail.list()
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
save_string = str("D:Dumpgmailemail_" + str(x) + ".eml")
with open(save_string, 'a') as myfile:
myfile.write(body.decode('utf-8'))
Also simplified your save routine
Not sure if lines 19 and 21 are part of for loop or not.
Looked at examples here: https://docs.python.org/3/library/email.examples.html
I haven't used this package, so perhaps you can compare to these examples.
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'pass')
mail.list()
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
print(email_message)
break
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
save_string = str("D:Dumpgmailemail_" + str(x) + ".eml")
with open(save_string, 'a') as myfile:
myfile.write(body.decode('utf-8'))
Done.Now everything works.Those 2 lines should've been part of for loop but in original code of mine they weren't.Thanks for bringing my atention to it.have a good day.
Nevermind...
MIME-Version: 1.0
Date: Sun, 27 Jan 2019 12:18:51 +0200
Message-ID: <CAK_qYVGw+UC7Ar9FhU+YRKQC8hXqs=tJzXW6_CvXsaJjzOJwSA@mail.gmail.com>
Subject: Muie
From: Wind Bullet <[email protected]>
To: [email protected]
Content-Type: multipart/alternative; boundary="0000000000000765de05806de3c2"
--0000000000000765de05806de3c2
Content-Type: text/plain; charset="UTF-8"
Muiescp
--0000000000000765de05806de3c2
Content-Type: text/html; charset="UTF-8"
<div dir="auto">Muiescp</div>
--0000000000000765de05806de3c2--
Muiescp
I have this output.How can I just the content in <div dir="auto"></div> Bassicaly the message only.Also if the possible the subject but not neccesary.
(Jan-27-2019, 10:21 AM)negru555 Wrote: [ -> ] (Jan-26-2019, 08:26 PM)Larz60+ Wrote: [ -> ]Fixed indentation (PEP8 - 4 spaces per indent level)
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myemail', 'password')
mail.list()
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
save_string = str("D:Dumpgmailemail_" + str(x) + ".eml")
with open(save_string, 'a') as myfile:
myfile.write(body.decode('utf-8'))
Also simplified your save routine
Not sure if lines 19 and 21 are part of for loop or not.
Looked at examples here: https://docs.python.org/3/library/email.examples.html
I haven't used this package, so perhaps you can compare to these examples.
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'pass')
mail.list()
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
print(email_message)
break
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
save_string = str("D:Dumpgmailemail_" + str(x) + ".eml")
with open(save_string, 'a') as myfile:
myfile.write(body.decode('utf-8'))
Done.Now everything works.Those 2 lines should've been part of for loop but in original code of mine they weren't.Thanks for bringing my atention to it.have a good day.
Nevermind...
MIME-Version: 1.0
Date: Sun, 27 Jan 2019 12:18:51 +0200
Message-ID: <CAK_qYVGw+UC7Ar9FhU+YRKQC8hXqs=tJzXW6_CvXsaJjzOJwSA@mail.gmail.com>
Subject: Muie
From: Wind Bullet <[email protected]>
To: [email protected]
Content-Type: multipart/alternative; boundary="0000000000000765de05806de3c2"
--0000000000000765de05806de3c2
Content-Type: text/plain; charset="UTF-8"
Muiescp
--0000000000000765de05806de3c2
Content-Type: text/html; charset="UTF-8"
<div dir="auto">Muiescp</div>
--0000000000000765de05806de3c2--
Muiescp
I have this output.How can I just the content in <div dir="auto"></div> Bassicaly the message only.Also if the possible the subject but not neccesary.
I did this and now I can get the mail.I also think I know how to obtain the subject.Thanks for help.
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'DidAnyoneHopedMyPasswordIsHereLeft?')
mail.list()
mail.select('inbox')
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
for part in email_message.walk():
if part.get_content_type() == "text/plain":
body = part.get_payload(decode=True)
messajbody = body.decode('utf-8')
messajbody = messajbody.split("<div dir=\"auto\">")
messajbody = messajbody[0].replace("\n","")
print(messajbody)
T/C