如何在python中读取pop服务器响应

如何在python中读取pop服务器响应,python,Python,我正在尝试读取pop3 hotmail服务器的响应或异常。这是一个非常简单的问题,但我是python初学者,不知道如何阅读?这是我的代码: import poplib import sys host = 'pop3.live.com' port = 995 email='123456@hotmail.com' pwd='123456' server = poplib.POP3_SSL(host, port) try: server.user(email) server.pass_

我正在尝试读取pop3 hotmail服务器的响应或异常。这是一个非常简单的问题,但我是python初学者,不知道如何阅读?这是我的代码:

import poplib
import sys
host = 'pop3.live.com'
port = 995
email='123456@hotmail.com'
pwd='123456'
server = poplib.POP3_SSL(host, port)
try:
    server.user(email)
    server.pass_(pwd)
    if('+OK'):
        print 'Email: '+email+'password: '+pwd
        server.quit()
        sys.exit(1)
except poplib.error_proto:
    if('POP+disabled'):
        print 'Email: '+email+'password: '+pwd
        server.quit()
        sys.exit(1)
    elif('authentication+failed'):
        print "wronge user and pass. try again"
        continue
    continue    
在例外情况下,如果用于消除该用户登录名和密码的“POP+禁用”是正确的,但该帐户尚未在选项中启用POP3

当我运行上面的代码,然后它也显示电子邮件密码是否我把错误的密码


有谁能帮我解决这个问题吗?

在继续解析消息之前,您可以使用server.getwelcome方法检查服务器响应

服务器对象允许您在身份验证后请求消息列表,然后可以调用retr来检索每条消息



    welcomeresp = server.getwelcome()
    if welcomeresp.find("+OK"):
       numMessages = len(server.list()[1])
       for i in range(numMessages): 
          for j in server.retr(i+1): 
              server_msg, body, octets = j
              for line in body:
                 print line

有关更多信息和示例,请参阅POP库的文档:


如果“+OK”:总是返回true,因为字符串的布尔值总是true,除非它是空的。你需要有一个适当的条件。如果某物==+OK,我想它的响应=server.pass\u pwdBarmar我已经检查了这个命令。。。但是不工作。。。不要以这种方式保存响应Ashoka Lella>>这就是我真正的意思。。但我不知道如何在变量中保存此响应。。。我尝试了所有方法,但失败了我检查了所有命令server.retr、list、\u getresp等。。但是无法将响应保存在变量中:我修改了答案以显示如何将消息存储在变量体中先生,我的问题不是存储消息。。。。我的问题是存储响应。。。如果你能再次检查我的程序。。。然后你展示的节目。。。。认证通过后,当用户登录时,需要执行该步骤。。。但是在我的程序中,我想在用户登录之前存储响应。我认为您正在寻找getwelcome方法。我修改了答案。您可以在验证之前查看欢迎消息