2
import imaplib
import pprint

IMAP_SERVER='imap.gmail.com'
IMAP_PORT=993

M = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
rc, resp = M.login('user@gmail.com', 'password')
print rc, resp

M.select()
for msg_num in M.search(None, "UNDELETED")[1][0].split():
    msg = M.fetch('1', '(BODY.PEEK[TEXT])') 
    print msg[1][0][1][139:161]

M.close()         
M.logout()

私はPythonプログラミングの初心者であり、上記のPythonコードは、やりたいプログラムに使用しているものです。これを端末で実行すると、アカウントを認証したという応答が返され、文字139と161の間にメッセージが表示されます。これは、電子メールの例では次のとおりです。

これは単なるテストです...

これは端末に印刷されます。私がやりたいのは、このプリントアウトを取り出して、他のものと比較することです。例:a = bの場合、x。私がやりたいのは、ステートメントが真の場合、シリアルポートに信号を送信することです。

すべての助けのおかげでどんな助けも高く評価され、期待されています...

4

1 に答える 1

2

メッセージを出力する前に、メッセージを変数に割り当てるだけです。

for msg_num in M.search(None, "UNDELETED")[1][0].split():
    msg = M.fetch('1', '(BODY.PEEK[TEXT])') 
    a = msg[1][0][1][139:161]
    print a

# later..
if a == 'this is just a test...':
   # your code here
   pass

明らかに、""よりも意味のある変数名を使用する必要がありますa

于 2011-03-14T14:48:12.000 に答える