Python - Imap Gmail响应

时间:2012-11-18 08:53:46

标签: python gmail imap

我正在为gmail编写一个简单的IMAP客户端。因为它是使用套接字等的赋值,所以我不能使用python的imaplib库。我在这段代码中遇到了一个问题:

 def connect(self, server, username, password, port=993):

    self.socket.connect((server, port))
    response = self.socket.recv(2048)
    if response.startswith('NO' or 'BAD'):
        return False
    print response

    # send username
    self.sendData('a001 login {0} {1}\n'.format(username, password))
    response = self.socket.recv(2048)
    if response.startswith('NO' or 'BAD'):
        return False
    print response 

    self.sendData('a002 CAPABILITY\n')
    response = self.socket.recv(2048)
    if response.startswith('NO' or 'BAD'):
             print response
             return False
    print response 
    return True

一切正常,直到第二个命令被发送。我不太确定,我现在在做什么。

这是sendData,它被问到:

  def sendData(self, command):

    lenght = len(command)
    totalSendBytes = 0

    while (totalSendBytes < lenght):
        bytesSend = self.socket.send(command[totalSendBytes:])

        if bytesSend <= 0:
            return False

        totalSendBytes += bytesSend

    return True

启动程序后,我只得到第一个命令的响应:

  
      
  • 好的Gimap已准备好接受IPGOESHERE的要求47if12049394eef.11

  •   
  • 能力IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS = DEFLATE a001 OK   xxx@gmail.com XXX XXX经过身份验证   (成功)

  •   

提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用\ r \ n,这是IMAP规范所要求的。