Используя электронную почту. HeaderParser с imaplib.fetch в Python?

Worksheets("Source").Columns("A:D").Copy Destination:=Worksheets("Target").Range("a1")

Посмотрите на выше. Этот код перемещается с первого листа на второй. Не нужно копировать + вставлять, и гораздо более простой метод

Примените его к своему коду по мере необходимости

9
задан Hortitude 31 March 2009 в 21:40
поделиться

1 ответ

Хорошие новости: Вы правы..., что Вам не нужен к выпадающему RFC822. message_parts параметр к fetch() позволяет Вам быть довольно мелкомодульными.

Вот простой пример того, как выбрать просто заголовок:

import imaplib
from email.parser import HeaderParser

conn = imaplib.IMAP4('my.host.com')
conn.login('my@username.com', 'mypassword')
conn.select()
conn.search(None, 'ALL') # returns a nice list of messages...
                         # let's say I pick #1 from this

data = conn.fetch(1, '(BODY[HEADER])')

# gloss over data structure of return... I assume you know these
# gives something like:
# ('OK', [(1 (BODY[HEADER] {1662', 'Received: etc....')])
header_data = data[1][0][1]

parser = HeaderParser()
msg = parser.parsestr(header_data)
<email.message.Message instance at 0x2a>

print msg.keys()
['Received', 'Received', 'Received', 'Cc', 'Message-Id', 'From', 'To',
'In-Reply-To', 'Content-Type', 'Content-Transfer-Encoding', 'Mime-Version',
'Subject', 'Date', 'References', 'X-Mailer', 
'X-yoursite-MailScanner-Information',
'X-yoursite-MailScanner', 'X-yoursite-MailScanner-From', 'Return-Path',
'X-OriginalArrivalTime']

Полный список частей сообщения, которые могут быть переданы как второй аргумент fetch находится в спецификации IMAP4: http://tools.ietf.org/html/rfc1730#section-6.4.5

18
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: