Я попытался адаптировать этот скрипт, который нашел, выполнив поиск в Google. Работал отлично с предыдущими сообщениями электронной почты, которые я получал, поскольку он непосредственно извлекал поле «От», и я не получил ошибку.Пытается извлечь поле заголовка «Reply-To» в Python, не получив адрес электронной почты
Вот что мой код выглядит следующим образом:
#!/usr/bin/python
import imaplib
import sys
import email
import re
#FOLDER=sys.argv[1]
FOLDER='folder'
LOGIN='[email protected]'
PASSWORD='password'
IMAP_HOST = 'imap.gmail.com' # Change this according to your provider
email_list = []
email_unique = []
mail = imaplib.IMAP4_SSL(IMAP_HOST)
mail.login(LOGIN, PASSWORD)
mail.select(FOLDER)
result, data = mail.search(None, 'ALL')
ids = data[0]
id_list = ids.split()
for i in id_list:
typ, data = mail.fetch(i,'(RFC822)')
for response_part in data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1])
sender = msg['reply-to'].split()[0]
address = re.sub(r'[<>]','',sender)
# Ignore any occurences of own email address and add to list
if not re.search(r'' + re.escape(LOGIN),address) and not address in email_list:
email_list.append(address)
print address
У электронной почты может не быть ответа на вопрос. Это нормально. – furas
все письмо имеет ответ на. На самом деле, он не извлекает адрес электронной почты, это единственная проблема здесь: – Vanity
, если вы уверены, что у вас есть письмо с ответом, а затем используйте 'print()', чтобы узнать, что у вас есть в 'msg' и в' msg [' answer-to '] 'и в' msg [' reply-to ']. split() ' – furas