Как узнать кто отправил письмо мне на почту (емайл)?
Нужно создать функцию, которая будет заходить на Google Mail и выдавать мне почту с которой пришло мне письма. Не могу решить эту проблему, много чего пытался, ничего не помогало.
Как это можно сделать?
import imaplib
login = str(self.login.get())
password = str(self.password.get())
mail1 = str(self.mail.get())
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login({login},{password})
mail.select('inbox')
Тут я использую блоки ввода информации, и в этой функции использую их.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Пример:
import re
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]','mypassword')
# сначала выбираем папку All Mail
folder = [re.sub(r'.*?("\[G[^"]*").*', r'\1', f.decode("utf-8")) for f in mail.list()[1] if br"\All " in f][0]
mail.select(folder)
# поиск писем по отправителю
typ, data = mail.search(None, '(FROM "Paul")')
ID найденных писем
In [29]: data
Out[29]: [b'5828 6791 6956 7523 7840']
читаем и парсим одно из найденных писем:
typ, d = mail.fetch('5828', '(RFC822)')
msg = email.message_from_bytes(d[0][1])
аттрибуты msg:
In [34]: msg.keys()
Out[34]:
['Delivered-To',
'Received',
'X-Received',
'Return-Path',
'Received',
'Received-SPF',
'Authentication-Results',
'Received',
'DKIM-Signature',
'X-Google-DKIM-Signature',
'X-Gm-Message-State',
'X-Received',
'MIME-Version',
'Received',
'Received',
'From',
'Date',
'Message-ID',
'Subject',
'To',
'Content-Type']
дальше можно посмотреть каждый из этих атрибутов:
In [35]: print(msg["from"])
Paul ****** <paul.******@******.com>