парсинг электронной почты построчно с определенного почтового адреса - PullRequest
1 голос
/ 21 апреля 2019

Я пытаюсь извлечь тело письма из определенного письма.Мне удалось получить последнюю почту с этого конкретного адреса. Это почта, которую я пытаюсь извлечь -

Chat on qa.sheraspace.com

Conversation started on : Sunday, April 07, 2019, at 06:00 (GMT+0)
[06:04]     max: Name : max
Email : max@gmail.com
Phone : 01823457891
[06:04]     sammy has joined the conversation
[06:04]     sammy: hello
[06:04]     max: yes
[06:04]     sammy: what can i do for yot
No tawk.to live chat account ?  Create one for free here! re! 

Но я не смог разобрать почту идеально.Это мой результат

b'Chat on qa.sheraspace.com\r\n========================================================================\r\n\r\nConversation started on : Sunday, April 07, 2019, at 06:00 (GMT+0)\r\n\r\n\t[06:04]  max: Name : max\r\nEmail : max@gmail.com\r\nPhone : 01823457891\r\n\t[06:04]  sammy has joined the conversation\r\n\t[06:04]  sammy: hello\r\n\t[06:04]  max: yes\r\n\t[06:04]  sammy: what can i do for yot\r\n\r\n\tNo tawk live chat account ? Create one for free at http://www.tawk.to\r\n'

. Как я могу избавиться от \ r \ n \ и получить эту почту построчно. Любое предложение, как разобрать его идеально?вот мой код

import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('yourmail', 'password')
mail.list()
mail.select('inbox')

result, data = mail.uid('search',None, '(FROM "mail from specific address")')
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 = "F:\\result\\client_" + str(x) + ".txt"
        myfile = open(save_string, 'a')
        myfile.write(str(body))
        myfile.close()
    else:
        continue

1 Ответ

1 голос
/ 21 апреля 2019

Вы пытались разделить строку, полученную в выводе?

C = 'Chat on qa.sheraspace.com\r\n===================================================== 
===================\r\n\r\nConversation started on : Sunday, April 07, 2019, at 06:00 (GMT+0)\r\n\r\n\t[06:04]  max: Name : max\r\nEmail : max@
 ...:gmail.com\r\nPhone : 01823457891\r\n\t[06:04]  sammy has joined the conversation\r\n\t[06:04]  sammy: hello\r\n\t[06:04]  max: yes\r\n\t[06:04]  sammy: what can i do for yot\r\n\r\n\tNo tawk live chat account ? Create one for free
...:  at http://www.tawk.to\r\n' 

, а затем разделить ее:

C.split('\r\n')

дает:

['Chat on qa.sheraspace.com',
'========================================================================',
'',
'Conversation started on : Sunday, April 07, 2019, at 06:00 (GMT+0)',
'',
'\t[06:04]  max: Name : max',
'Email : max@gmail.com',
'Phone : 01823457891',
'\t[06:04]  sammy has joined the conversation',
'\t[06:04]  sammy: hello',
'\t[06:04]  max: yes',
'\t[06:04]  sammy: what can i do for yot',
'',
'\tNo tawk live chat account ? Create one for free at http://www.tawk.to',
'']
...