2016-11-12 9 views
0

が、私はこのようになりますメールがあるとします。私は[email protected]を得るためにmsg = email.message_from_string(str)、およびmsg['To']を使用することができます知っているPythonの構文解析text/plainのメール

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 <[email protected]>; 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: <[email protected]> 
Subject: TEST 12 
From: Full Name <[email protected]> 
To: [email protected] 
Content-Type: text/plain; charset=ISO-8859-1 

ONE 
TWO 
THREE 

、しかし私は「ONE TWO THREE方法を識別します"底に?ボーナス!一番上の「Received:」k/vのペアをすべて特定するにはどうすればよいですか?私が試したとき:

msg['Received'] 

私は最初のものを手に入れます。私はどのように2番目のものを手に入れますか?

答えて

1

これは「ボーナス」にのみ対応しています。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)を探索することができます。

+0

help()とdir()の使い方を教えてくれました。他の言語では見逃せない非常に便利な関数です。 –

0

私はこのコードで電子メールの本文から "ONE TWO THREE" を識別することができます

msg.get_payload() 

Yaahくれ!