【发布时间】: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 谢谢,我会调查的。