【问题标题】:Python - Imap Gmail ResponsePython - Imap Gmail 响应
【发布时间】:2012-11-18 08:53:46
【问题描述】:

我正在为 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

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

  • OK Gimap 准备好接受来自 IPGOESHERE 47if12049394eef.11 的请求

  • 功能 IMAP4rev1 取消选择空闲命名空间配额 ID XLIST 儿童 X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE a001 OK xxx@gmail.com XXX XXX 认证 (成功)

提前谢谢你。

【问题讨论】:

  • 你能发布 sendData 的代码吗?此外,您的缩进在 CAPABILITY if 语句下是关闭的。你能发布你得到的错误/堆栈跟踪吗?
  • 缩进没有错误,是编译器检查的。没有错误。

标签: python gmail imap


【解决方案1】:

尝试使用 IMAP 规范要求的 \r\n。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 2011-05-26
    • 2012-10-20
    • 2019-05-24
    • 2015-08-23
    • 1970-01-01
    • 2019-05-19
    • 2011-09-22
    相关资源
    最近更新 更多