为什么我无法在 Python 中两次登录 imap 服务器

2024-01-21

正如下面的错误消息所示,我无法登录,因为我处于 LOGOUT 状态而不是 NONAUTH 状态。如何从 LOGOUT 转到 NONAUTH?

下面的示例(显然下面的登录凭据是伪造的)

Python 2.7.3 (default, Aug  1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import imaplib
>>> imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
>>> imap_server.login('[email protected] /cdn-cgi/l/email-protection', 'mypassword')
('OK', ['[email protected] /cdn-cgi/l/email-protection Joe Smith authenticated (Success)'])
>>> imap_server.logout()
('BYE', ['LOGOUT Requested'])
>>> imap_server.login('[email protected] /cdn-cgi/l/email-protection', 'mypassword')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/imaplib.py", line 505, in login
    typ, dat = self._simple_command('LOGIN', user, self._quote(password))
  File "/usr/lib/python2.7/imaplib.py", line 1070, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/usr/lib/python2.7/imaplib.py", line 825, in _command
    ', '.join(Commands[name])))
imaplib.error: command LOGIN illegal in state LOGOUT, only allowed in states NONAUTH
>>> quit()

您尝试做的事情在 IMAP 中是非法的。如果你读完RFC 3501 https://www.rfc-editor.org/rfc/rfc3501,它明确定义了注销状态 https://www.rfc-editor.org/rfc/rfc3501#section-3.4作为一种无法返回的状态。您是否收到错误imaplib它本身,或者来自服务器,或者你真的很不幸,它会起作用并带你进入未定义行为的领域......答案是相同的:不要这样做。

因此,您必须创建与服务器的新连接才能再次登录:

>>> imap_server.logout()
('BYE', ['LOGOUT Requested'])
>>> imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
>>> imap_server.login('[email protected] /cdn-cgi/l/email-protection', 'mypassword')
('OK', ['[email protected] /cdn-cgi/l/email-protection Joe Smith authenticated (Success)'])

(当然不必重新绑定同名imap_server到新的连接。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我无法在 Python 中两次登录 imap 服务器 的相关文章

随机推荐

  • Windows Phone 7 应用程序 - 方向更改

    各位开发者大家好 我正在开发一个 Windows Phone 7 应用程序 我无法弄清楚我认为对于经验丰富的人来说这是一个简单的问题 假设我有一个由两个元素组成的布局 一个列表框 填充了大量的项目 和一个文本块 为用户提供一些基本说明 当设
  • 什么是“表达问题”?

    我对这是什么有一个粗略的想法 但如果有人对 表达问题 有他们认为简洁直观的解释 我很想听听 Watch 这个想法是 您的程序是数据类型和对其进行操作的组合 该问题要求一种实现 允许添加类型的新情况和新操作 而不需要重新编译旧模块并保持静态类
  • Spring Bootrabbitmq连接超时问题

    我的 Spring Boot 应用程序抛出连接超时错误 并且永远无法连接 我看到的另一个有趣的问题是 它永远不会获取 Spring 应用程序属性中定义的连接超时属性 org springframework amqp AmqpTimeoutE
  • 将 Pivot xml 输出转换为不带 xml 的表格输出

    我有以下类型的表 ID Key Value 1 A aa 2 B bb 3 A ay 4 C cc 5 B bx 6 C ct 我需要输出 A B C aa bb cc ay bx ct 当我将 PIVOT 与子查询一起使用时 它不起作用
  • Scala / Dotty - 将特征混合到现有对象中

    有没有办法将特征混合到 Dotty 或 Scala 中的现有对象中 class SomeClass trait SomeTrait This works but it s not what I m looking for new SomeC
  • 在java中不使用任何循环打印1到10[重复]

    这个问题在这里已经有答案了 可能的重复 无循环或条件地显示从 1 到 100 的数字 https stackoverflow com questions 2044033 display numbers from 1 to 100 witho
  • 如何停止运行 Vim 宏

    我将一个宏记录到一个寄存器中 并以太多的重复次数开始它 完成每个宏需要很长时间 如何取消 停止 Vim 执行宏 有没有办法在不终止编辑器进程的情况下完成此操作 以下是我遵循的步骤 录制宏到寄存器1 我运行了1000次 1000 1 现在等待
  • C# 4.0中OptionalAttribute和可选参数有什么区别

    我正在研究别人的代码 有一个这样的方法 public SomeClass DoSomething string param1 Optional DefaultParameterValue string optional 为什么有人会使用这些
  • 本地化字符串比较

    有什么区别NSString s localizedCaseInsensitiveCompare and localizedStandardCompare 方法 我阅读了参考资料 但不知道该使用哪一个 localizedCaseInsensi
  • PHP OOP 数据库问题

    我正在使用 DB 类中的 get 函数从数据库查询用户名 即使数据库中存在用户 它也总是返回 无用户 这是我的 DB php
  • 如何旋转 ImageView?

    我想在我的 Activity 中以编程方式旋转 ImageView 目前我找不到任何适用于 Xamarin 的解决方案 并且 Android 的翻译解决方案也不起作用 有人知道如何旋转 ImageView 吗 例如 这段代码只是给了我一个
  • 如何在Android中使用Java邮件将应用程序电子邮件同步到服务器电子邮件?

    我想同步更改电子邮件应用程序中的更改 然后自动更改服务器电子邮件中的更改 例如 我已阅读电子邮件应用程序上的未读消息 然后自动服务器电子邮件将未读邮件更改为已读邮件 我的电子邮件应用程序使用邮件 jar 文件 activation jar
  • Airflow dags 生命周期事件

    我正在尝试通过java后端管理气流dags 创建 执行等 目前 在创建 dag 并将其放入气流的 dags 文件夹中之后 我的后端不断尝试运行 dag 但在气流调度程序接收到它之前它无法运行它 如果 dag 的数量较多 这可能需要相当长的时
  • Eslint:函数体括号的换行规则(类似于 object-curly-newline)?

    我希望函数体的括号有新行 const fn gt new line here new line before 同样适用于function We have https eslint org docs latest rules object c
  • 如何在elasticsearch启动时加载索引模板文件?

    在elasticsearch v1 5中 索引模板可以放置在templates目录下的配置位置 path conf 中elasticsearch config templates 但是 我发现升级到v2 3或v5 3后 这个模板将不会被加载
  • 获取Datalist中选定的项目值

    我在数据列表中使用 ImageButton 并希望将所选项目值存储在变量中以进一步处理它 如何在单击按钮时获取数据 我需要的数据是 Productid 名称 价格等 有什么帮助吗 数据列表的代码是
  • 具有单字母扩展名的 C++ 头文件有什么特别之处?

    C 标准在第 16 2 节 源文件包含 中包含以下规则 它以某种方式使单字符文件扩展名变得特殊 该实现应为由一个或多个组成的序列提供唯一的映射非数字 or digits 2 11 后跟一个句点 和一个单一的nondigit 第一个字符不能是
  • WPF TreeView 虚拟化

    我正在尝试弄清楚这个虚拟化功能 我不确定我是否理解错误或发生了什么 但我正在使用 ANTS 内存分析器来检查虚拟化 TreeView 中的项目数 并且它只是不断增加 我有一个包含 1 001 个项目 1 个根项目 1000 个子项目 的 T
  • Scipy:凸包的质心

    如何使用 python 和 scipy 计算凸包的质心 我找到的只是计算面积和体积的方法 问候 弗兰克 假设您已经使用以下方法构建了凸包scipy spatial ConvexHull 返回的对象应该具有点的位置 因此质心可能很简单 imp
  • 为什么我无法在 Python 中两次登录 imap 服务器

    正如下面的错误消息所示 我无法登录 因为我处于 LOGOUT 状态而不是 NONAUTH 状态 如何从 LOGOUT 转到 NONAUTH 下面的示例 显然下面的登录凭据是伪造的 Python 2 7 3 default Aug 1 201