【问题标题】:Python openssl problemPython openssl 问题
【发布时间】:2010-09-18 18:08:37
【问题描述】:

我正在尝试用 python 编写一个简单的邮件检索程序。似乎连接正在建立。但是当我尝试使用用户名授权它时,我没有得到服务器的回复。谁能告诉我这里出了什么问题?

import socket, sys
from OpenSSL import SSL

ctx = SSL.Context(SSL.SSLv23_METHOD)

print "Creating socket"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "done"

ssl = SSL.Connection(ctx, s)

print "Establishing Connection"
ssl.connect(("pop.gmail.com", 995))
print "done"

print "Requesting Documents"
print "done"

try:
    buf = ssl.read(4096)
except SSL.ZeroReturnError:
    print "1"
sys.stdout.write(buf)

ssl.send("USER username")

try:
    buf2 = ssl.recv(4096)
except SSL.ZeroReturnError:
    print "2"
sys.stdout.write(buf2)

ssl.send("PASS secret")

try:
    buf3 = ssl.read(4096)
except SSL.ZeroReturnError:
    print "2"
sys.stdout.write(buf3)

print "connected"
ssl.close()

【问题讨论】:

  • 知道了,我应该用 \r\n 结束我发送到服务器的字符串
  • 您是否考虑过改用poplib
  • 如果你找到了解决方案,你应该把它放在一个答案中,如果没有其他人建议你更喜欢的东西,几天后将其标记为“最佳答案”。否则,这将保留在未回答的问题列表中。 (我赞同 NullUserException 的建议,即检查 poplib。它应该可以为您省去很多这种低级的麻烦。)
  • @NullUserException 谢谢,我会调查的。

标签: python openssl


【解决方案1】:

以 \r\n 结束字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 2012-02-07
    相关资源
    最近更新 更多