Imaplib 中的 EOF 错误

2023-11-27

我正在编写一个 python 小程序,用于监视工作场所电子邮件箱的未读计数,当我在小程序闲置大约 10 分钟后尝试使用任何 imaplib 方法时,遇到了 EOF 错误。一切工作正常,直到小程序存活超过 10 分钟。

这是imaplib对象的相关代码。

conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)

def loginIMAP (imapObj):
    # Login to Helpdesk Google Apps Email account using encryption
    imapObj.login(base64.b64decode("usrEncryption"), base64.b64decode("pwdEncrytion"))
    return(getUnread(imapObj))

def closeIMAP (imapObj):
    imapObj.logout()


def getUnread (imapObj):
    # Check connection status OK
    try:   
        uc0 = int(re.search("UNSEEN (\d+)", imapObj.status("INBOX", "(UNSEEN)")[1][0]).group(1))
        uc1 = int(re.search("UNSEEN (\d+)", imapObj.status("A box 1", "(UNSEEN)")[1][0]).group(1))
        uc2 = int(re.search("UNSEEN (\d+)", imapObj.status("A box 2", "(UNSEEN)")[1][0]).group(1))
    except:
        print "Shit's all disconnected n stuff"
        loginIMAP(conn)

    unreadCount = [(uc0-(uc1+uc2)),uc1,uc2]
    if unreadCount[0] < 0:
        unreadCount[0]=0
    return unreadCount

usrEncryption and pwdEncryption只是我屏蔽了 u/p,所以我们的帮助台登录信息并不都是公开的。

当我尝试打电话时getUnread(conn)打开小程序十多分钟后,我得到以下输出:

    Traceback (most recent call last):
  File "C:\Jamin'sApps\Development\Projects\Check HD Box\checkHDBox.py", line 255, in OnRefresh
    unread = getUnread(conn)
  File "C:\Jamin'sApps\Development\Projects\Check HD Box\checkHDBox.py", line 119, in getUnread
    uc0 = int(re.search("UNSEEN (\d+)", imapObj.status("INBOX", "(UNSEEN)")[1][0]).group(1))
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 710, in status
    typ, dat = self._simple_command(name, mailbox, names)
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 1070, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 899, in _command_complete
    raise self.abort('command: %s => %s' % (name, val))
imaplib.abort: command: STATUS => socket error: EOF
Traceback (most recent call last):
  File "C:\Jamin'sApps\Development\Projects\Check HD Box\checkHDBox.py", line 255, in OnRefresh
    unread = getUnread(conn)
  File "C:\Jamin'sApps\Development\Projects\Check HD Box\checkHDBox.py", line 119, in getUnread
    uc0 = int(re.search("UNSEEN (\d+)", imapObj.status("INBOX", "(UNSEEN)")[1][0]).group(1))
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 710, in status
    typ, dat = self._simple_command(name, mailbox, names)
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 1070, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Jamin'sApps\Development\Python\python2.7.2\lib\imaplib.py", line 859, in _command
    raise self.abort('socket error: %s' % val)
imaplib.abort: socket error: [Errno 10053] An established connection was aborted by the software in your host machine

异常块似乎并不能真正解决这个问题,这正是我真正需要帮助的地方。那么我该如何保持这种联系的活力呢?

Thanks.


您需要通过重新初始化类来重新连接,而不仅仅是登录,使用

conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)

一个完整的例子:

while True:
    imap = imaplib.IMAP4_SSL(SERVER)
    r, d = imap.login(ACCOUNT, PASSWORD)
    assert r == 'OK', 'login failed'
    try:
        # do things with imap
    except imap.abort, e:
        continue
    imap.logout()
    break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Imaplib 中的 EOF 错误 的相关文章

随机推荐

  • 在同一选择中使用列别名[重复]

    这个问题在这里已经有答案了 如何在同一查询的其他地方使用列别名 在Oracle中可以吗 使用 EMP ID 的示例 SELECT t1 DATE t2 NAME t1 ID TO NUMBER SUBSTR t1 NUMBER ID 6 T
  • 6 种基本算术运算的相对周期时间是多少?

    当我尝试优化我的代码时 很长一段时间我一直在使用一条经验法则 即加法和减法的值是 1 乘法和除法的值是 3 平方的值是 3 我很少使用更通用的规则 pow函数 所以我没有经验法则 平方根值 10 我假设数字的平方只是乘法 所以值 3 这是二
  • 如何从“签出但已删除”状态恢复文件?

    我试图签出一个文件 它进入 签出但已删除 状态 我无法撤消结账 也不知道下一步需要做什么 当我为此上网时 我发现了一篇文章IBM 网站结帐但已删除状态 但我没有尝试重命名文章中提到的文件名 但仍然出现错误 我使用的是 Clearcase 7
  • 使用 out/ref 与返回相比有什么好处?

    我正在使用 XNA 框架制作游戏 因此我使用了很多对向量进行操作的函数 尤其Vector2 64 位结构 让我困扰的是大多数方法都是用 ref 和 out 参数定义的 这是一个例子 void Min ref Vector2 value1 r
  • 在Python中,有没有办法以某种格式验证用户输入? [复制]

    这个问题在这里已经有答案了 在Python中 我要求用户输入一个办公室代码位置 其格式需要为 XX XXX 其中X是字母 我如何确保他们的输入遵循格式 并且如果不要求他们再次输入办公室代码 Thanks 标准 且与语言无关 的方法是使用常用
  • 这个 C++ 堆栈分配器有改进吗?

    对我的基于堆栈的分配器有什么建议吗 除了建议使用具有私有 公共成员的类 struct Heap void heap start void heap end size t max end Heap size t size heap start
  • 尝试获取类型 ICacheManager、键“缓存管理器”的实例时发生激活错误

    我似乎在这里碰壁了 希望能够得到任何有能力的人的帮助 我不太确定下面的错误消息是什么意思 我正在使用企业模式服务的缓存块 但我不断遇到以下问题 我下载了最新版本并尝试逐步解决该问题 但我似乎无法确定确切的问题 我需要帮助 提前致谢 Test
  • 在 Python 中,单击如何查看父命令具有必需参数的子命令的 --help?

    我的程序使用Click用于命令行处理 它有一个带有必需参数的主命令 该命令具有带有可选参数的子命令 不同的子命令采用不同的选项 但它们都需要来自其父命令的相同参数 我希望命令行看起来像这样 python myprogram py argum
  • heroku rake db:migrate > 没有要加载的文件 -- faker

    我第一次尝试将 Rails 3 应用程序部署到 Heroku 似乎可以向上推 但是当我尝试跑步时 heroku rake db migrate 我收到以下错误 rake aborted no such file to load faker
  • iOS 核心数据错误 - 一对多关系的值类型不可接受

    我对这个问题感到抓狂 这看起来应该是非常简单的事情 iOS Objective C 对我来说是新的 所以也许我只是没有掌握一些基本的东西 问题是我已经向核心数据模型添加了一个新实体 并建立了一对多关系 该模型已经有两个具有一对一关系的实体
  • 如何最好地测试 Java 代码?

    我自己一直在开发一个比较大的系统 这是我第一次开发大型系统 同时处理200 通道的信息 我知道如何使用 Junit 来测试每种方法 以及如何测试边界条件 但是 对于系统测试 我仍然需要测试所有接口 可能还需要测试一些压力测试 也许还有其他事
  • TakeUntil 未按文档说明工作?

    From 的文档TakeUntil操作员 强调我的 TakeUntil 订阅并开始镜像源 Observable 它还监视您提供的第二个 Observable 如果第二个 Observable 发出一个项目或发送终止通知 TakeUntil
  • 内拉伸 以适应窗口大小

    我正在尝试在 DOM 内拉伸 svg 文档以适应窗口大小 like so div div click to zoom div div
  • UITextView inputView

    我正在为 iPad 制作自定义输入法 我希望能够用我的输入法替换系统键盘 并通过该输入法输入文本 根据文档 我需要做的就是用我的视图设置 inputView 属性 它将用来代替系统键盘 我这样做了 就显示键盘而言 它有效 但我如何实际在文本
  • 如何使用 Nginx 将 404 请求重定向到 Django 单页应用程序中的主页?

    我有一个 Django 单页应用程序 目前 当您访问网站上不存在的 URL 时 会显示 404 错误 但是 在这种情况下 我想重定向到该网站的主页 我不确定我是否应该如何使用 Nginx 执行此操作 或者是否有办法在 Django 中执行此
  • 在 php 中循环时显示输出

    是否可以在无限循环中在浏览器上显示字符串 这就是我想要发生的事情 while 1 echo should display these lines on browser while in infinite loop br 对的 这是可能的 你
  • CORS 的概念以及我应该强制执行 Origin 标头吗?

    据我所理解CORS 无法以让您真正确定呼叫者是谁的方式来完全保护您 因为调用者可以发送他想要的任何 ORIGIN 标头 实际上我在某处读到你无法通过 javascript 设置原始标头 因为它是一个受限制的标头 但我不太确定这一点 无论如何
  • 我的设备控制器 rspec 中的“创建后”问题

    好吧 我的第一个问题 所以要温柔一点 我正在使用 devise 进行身份验证 但我有自己的控制器来扩展创建用户时发生的情况 我在注册 注册 时创建 用户 和 机构 在路线 devise for users controllers gt re
  • Visual Studio 2008 中的 if 语句怪异

    我遇到了一个非常奇怪的问题 所以我记录了我的会话 因为我认为没有人会相信我 我遇到了一个似乎非常基本的错误 这是一个单线程应用程序 我所做的就是评估布尔值 布尔值等于 false 但是 if 语句的执行就好像它是 true 一样 有点像 你
  • Imaplib 中的 EOF 错误

    我正在编写一个 python 小程序 用于监视工作场所电子邮件箱的未读计数 当我在小程序闲置大约 10 分钟后尝试使用任何 imaplib 方法时 遇到了 EOF 错误 一切工作正常 直到小程序存活超过 10 分钟 这是imaplib对象的