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。我要做的是,如果该语句是真实的,则将信号发送到串行端口。

感谢所有帮助...

有帮助吗?

解决方案

在打印后,只需将消息分配给变量:

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".

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top