python - python2.7 imaplib 挂起。让我开心
问题描述
我正在使用 python2.7 imaplib。当使用 fetch 命令获取电子邮件时,我的程序进入等待状态。仅在特定服务器上发生。
我在代码中找到了等待部分
我猜这个问题就像 tcp 套接字通信中的 crlf 或 EOL
我的开发环境 Python 版本:2.7 Imaplib 版本:2.58 操作系统:ubuntu 14.04 lts
感谢
我的 imap 命令
typ, eml = self.M.fetch(num, "(RFC822)")
日志(imaplib 调试 = 4)
/*my request*/
38:46.59 > CCOL12 UID FETCH 2 (RFC822)
/*server response*/
38:46.60 < * 1 FETCH (UID 2 RFC822 {1627}
38:46.60 read literal size 1627
代码中的等待部分(imaplib.py)
self.file.read(大小)
self.file.readline(_MAXLINE + 1)
def open(self, host = '', port = IMAP4_PORT):
"""Setup connection to remote server on "host:port"
(default: localhost:standard IMAP4 port).
This connection will be used by the routines:
read, readline, send, shutdown.
"""
self.host = host
self.port = port
self.sock = socket.create_connection((host, port))
self.file = self.sock.makefile('rb')
def read(self, size):
"""Read 'size' bytes from remote."""
return self.file.read(size)
def readline(self):
"""Read line from remote."""
line = self.file.readline(_MAXLINE + 1)
if len(line) > _MAXLINE:
raise self.error("got more than %d bytes" % _MAXLINE)
return line
代码中的等待部分(socket.py)
self._sock.recv(左)
def read(self, size=-1):
...
data = self._sock.recv(left)
tcpflow 有一个值
211.235.032.125.00143-192.168.020.054.46041: * 1 FETCH (UID 2 RFC822 {1627}
PHA+67Cb7J2AIOuplOyLnOyngCDthYzsiqTtirggMjwvcD48cD48YnI+PC9wPjxpbWcgc3Jj PSJodHRwOi8vY29ycC5uaWJ0di5jby5rcjo4MC9tYWlsd3JpdGUuZHM/YWN0PXNpZ25Mb2Fk JmFtcDtkb21haW5OYW1lPW5pYnR2LmNvLmtyJmFtcDt1c2VySWR4PTQ1MiZhbXA7aW1hZ2VJ ZHg9MyI+PHA+PGJyPjwvcD4NCjxpbWcgc3JjPSdodHRwOi8vY29ycC5uaWJ0di5jby5rcjo4 MC9oaXN0b3J5U2VudC5kcz9hY3Q9Y29uZmlybSZzZW5kZXI9YzNSaGNteHZkbVU0TTBCdWFX SjBkaTVqYnk1cmNnJTNkJTNkJnJlY2VpdmVyPWRHVnpkRUJ1YVdKMGRpNWpieTVyY2clM2Ql M2Qmc3ViamVjdD02N0NiN0oyQUlPdXBsT3lMbk95bmdDRHRoWXpzaXFUdGlyZ2dNZyUzZCUz ZCZtc2dpZD1Oalk1TVRnME1qRXlPRFE0TURNeE5ESXdOZyUzZCUzZCcgd2lkdGg9JzAnIGhl aWdodD0nMCc+DQo=
------=_Part_19149_29258794.1558065910484-- ) CCOL12 OK UID FETCH completed
解决方案
推荐阅读
- javascript - 具有纯 CSS 内容的初始自动高度的文本区域
- java - 无法为 Spring Integration 5.0.4 (Spring 5.0.5) 创建 Kotlin 配置
- c# - UWP 应用服务线程模型
- php - 在 Woocommerce 中将单个产品页面重定向到主页
- amazon-web-services - 通过 Cloudformation-Update 堆栈修改 EC2 上的文件
- javascript - 'cursor' 选项是来自每个聚合的必需错误
- java - 使用 marklogic java 客户端 api 处理 DOM
- json - 解析更复杂的嵌套响应
- r - 如何为 https://www.rdocumentation.org 中引用的函数查找 R 包
- ios - CloudKit 公共数据库 TestFlight 与 App Store