- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 python 中的 hotmail smtp 服务器。但是,我的登录尝试产生了一个明显的 SSL3 版本号错误。如何更改我正在使用的版本以及如何对此进行调查?
>> s.connect('smtp.live.com:587')
(220,
'BLU0-SMTP46.phx.gbl Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Tue, 2 Jul 2013 12:15:57 -0700')
>> s.ehlo()
(250,
'BLU0-SMTP46.phx.gbl Hello [123.456.789.01]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nTLS\nSTARTTLS\nOK')
s.starttls()
(220, '2.0.0 SMTP server ready')
>> s.login('my.email@hotmail.com','MyPaSsW0rD')
---------------------------------------------------------------------------
SMTPServerDisconnected Traceback (most recent call last)
<ipython-input-48-c8e9d7577d8d> in <module>()
----> 1 s.login('mymemail@hotmail.com','myPassw0rd')
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in login(self, user, password)
600 elif authmethod == AUTH_PLAIN:
601 (code, resp) = self.docmd("AUTH",
--> 602 AUTH_PLAIN + " " + encode_plain(user, password))
603 elif authmethod == AUTH_LOGIN:
604 (code, resp) = self.docmd("AUTH",
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in docmd(self, cmd, args)
384 """Send a command, and return its response code."""
385 self.putcmd(cmd, args)
--> 386 return self.getreply()
387
388 # std smtp commands
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.pyc in getreply(self)
357 self.close()
358 raise SMTPServerDisconnected("Connection unexpectedly closed: "
--> 359 + str(e))
360 if line == '':
361 self.close()
SMTPServerDisconnected: Connection unexpectedly closed: [Errno 1] _ssl.c:1363: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
我的 SSL 版本:
>> import _ssl
>> print _ssl.OPENSSL_VERSION
OpenSSL 1.0.1e 11 Feb 2013
最佳答案
我可以用 Debian Wheezy 和 Python 2.7.3 复制您的问题,它使用与您报告的完全相同的 OpenSSL 版本。我用 Wireshark 捕获数据包,TLS 握手成功,并且交换了一些数据。然而,在那之后不久,客户端对服务器发送的某些内容不满意并关闭了连接。
我能够通过使用 SSL3 而不是 TLS 来解决这个问题。我不知道如何在 Python 中修补一个库方法,以便使用它的其他库的行为会有所不同,所以我只是制作了自己的 smtplib
本地副本。
我复制了 2.7 version of smtplib
(点击raw link下载)改一行:
self.sock = ssl.wrap_socket(self.sock, keyfile, certfile)
到
self.sock = ssl.wrap_socket(self.sock, keyfile, certfile, ssl_version=ssl.PROTOCOL_SSLv3)
然后在我的本地目录中使用编辑后的文件,我得到:
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> s = smtplib.SMTP()
>>> s.connect('smtp.live.com:587')
(220, 'BLU0-SMTP418.blu0.hotmail.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Wed, 3 Jul 2013 09:59:32 -0700')
>>> s.ehlo()
(250, 'BLU0-SMTP418.blu0.hotmail.com Hello [24.143.227.254]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nTLS\nSTARTTLS\nOK')
>>> s.starttls()
(220, '2.0.0 SMTP server ready')
>>> s.ehlo()
(250, 'BLU0-SMTP418.blu0.hotmail.com Hello [24.143.227.254]\nTURN\nSIZE 41943040\nETRN\nPIPELINING\nDSN\nENHANCEDSTATUSCODES\n8bitmime\nBINARYMIME\nCHUNKING\nVRFY\nAUTH LOGIN PLAIN\nOK')
>>> s.login('my.email@hotmail.com','MyPaSsW0rD')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "smtplib.py", line 615, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, '5.0.0 Authentication Failed')
>>>
我没有有效的 Hotmail 帐户,所以我无法通过这里,但不再有 SSL 错误。
关于python - 使用smtp Hotmail SSL3版本号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17434143/
我正在Mac上开发一个safari插件。现在我想知道safari3,safari4的所有版本号,因为我可以在一些插件示例代码info.plist中看到:MinBundleVersion是5530,我检
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在阅读 http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html我有一些问题。 版本号、次要版本号和发布号之间有什
是否必须所有用 C++ 创建的 dll 都有版本号?我的机器中有 dll,但是当我右键单击时,我无法看到版本号。 PS:我安装了Win 7。 最佳答案 重要的是要了解,在加载 DLL 期间不会使用版本
我知道 VS 2010 有 F# 2.0 和 VS 2012 - F# 3.0。 但是我如何获得 F# 版本号,例如在 F# 交互中?是否有一些命令,例如:#ver;; ? 谢谢。 最佳答案 当您在
我已经发布了如何在 Eclipse Gallileo 中找到它,但如果有人有有关旧版本的信息,请随时在下面发布。 最佳答案 (2012 年 9 月更新): MRT指出in the comments “
Rational Function Tester 脚本如何确定它在哪个版本的 RFT 下执行/构建? 我仔细研究了文档,发现最接近的是 com.rational.test.ft.script.Scri
我正在使用 Alfresco。我知道如何查看已安装的 Alfresco vesrion 编号,但我需要以编程方式获取此版本号,例如通过 rest API 或某些 http 请求。有可能吗? 最佳答案
我目前正在尝试更新版本号。在 TeamCity 中使用 Nant 构建文件,包含版本号。如果我只是使用 . . 在脚本中,buildNumber 已更新为 2.16.3,但我还希望有此版本号的计数
我想编写一个脚本,它可以递归地扫描目录中的 DLL 并生成所有版本号的报告。 如何使用脚本检测 DLL 的版本号? VBScript 解决方案是首选,除非有更好的方法。 最佳答案 您可以使用 File
我正在开始一个有人在两年前开始的项目,但我无法确定它运行的 django 版本。制作该项目的人不知道,而且我不确定猜测和检查是否有效,因为我实际上不知道该项目是否可以编译。我找到了this答案,但它表
我需要确保可用的 PostgreSQL 版本不低于要求的版本。可以按如下方式请求版本字符串: SELECT VERSION(); 它返回给我类似的东西: PostgreSQL 9.5.4, compi
在我的数据库中,我在列中填写了这些数据: 1 1.1 1.1.1 1.1.1.1 1.1.2 1.10 1.11 1.2 1.9 我想对其进行排序,得到的结果如下所示: 1 1.1 1.1.1 1.1
我正在编写一个脚本,它需要一个简单的短格式的 Bash 版本号。 我知道 bash --version,但这会产生很长的输出: GNU bash, version 4.2.10(1)-release
我将 Grunt 与 php 一起使用,并使用一个包来对我的 css 进行版本控制,并将日期戳记为 style.min.20160913230349.css。 但是我如何找到一个包,将新字符串更新到我
我有一个用 distutils 构建的 python 包,我在我的设置函数中使用版本参数,就像这样(除了名称和版本之外还有其他参数): setup(name='example_module', ver
Windows EXE 文件附有版本号,由以点分隔的四位数字组成(例如 1.0.0.0)。 问题:比较这些数字的正确方法是什么?具体来说,是 1.15.0.0 > 1.2.0.0(因为 15 > 2)
如果我有一个像 这样的 iOS 用户代理 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532
我正在写一个 Symfony Console PHP应用程序takes a version number in the constructor . $app = new Application('my
我可以使用它们的一些构建语法或 Gradle API 中的某些内容来检查 Gradle 版本号吗? 最佳答案 gradle.gradleVersion 将返回版本号,作为字符串。 关于java - 如
我是一名优秀的程序员,十分优秀!