簡體   English   中英

python解析文本/純電子郵件

[英]python parsing text/plain email

假設我有一封電子郵件,看起來像這樣:

From hostname Tue Jun 15 21:43:30 2010
Received: (qmail 8580 invoked from network); 15 Jun 2010 21:43:22 -0400
Received: from mail-fx0-f44.google.com (209.85.161.44)
by ip-73-187-35-131.ip.secureserver.net with SMTP; 15 Jun 2010 21:43:22 -0400
Received: by fxm19 with SMTP id 19so170709fxm.3
for <username@domain.com>; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.84.1 with SMTP id m1mr2774225mul.26.1276652853684; Tue, 15
Jun 2010 18:47:33 -0700 (PDT)
Received: by 10.123.143.4 with HTTP; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
Date: Tue, 15 Jun 2010 20:47:33 -0500
Message-ID: <AANLkTikFsIjJ3KYW1HJWcAqQlGXNiXE2YMzrj39I0tdB@mail.gmail.com>
Subject: TEST 12
From: Full Name <username@sender.com>
To: username@domain.com
Content-Type: text/plain; charset=ISO-8859-1

ONE
TWO
THREE

我知道我可以使用msg = email.message_from_string(str)msg['To']來獲取username@domain.com ,但是如何識別底部的“兩個”? 獎金! 如何識別頂部的所有“已接收:” k / v對? 當我嘗試:

msg['Received'] 

我只有第一個。 如何獲得第二個?

這僅解決了“獎勵”:您可以使用msg.get_all('Received')

>>> msg.get_all('Received')
['(qmail 8580 invoked from network); 15 Jun 2010 21:43:22 -0400', 'from mail-fx0-f44.google.com (209.85.161.44)']
>>> msg.get_all('Received')[1]
'from mail-fx0-f44.google.com (209.85.161.44)'

旁注,您可以在解釋器中瀏覽dir(msg)help(msg)

我可以使用以下代碼從電子郵件的正文中識別“二三”:

msg.get_payload()

是的,我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM