2010-09-18 76 views
0

我想在python中编写一个简单的邮件检索程序。看起来连接正在建立。但是当我尝试使用用户名进行授权时,我没有收到服务器的回复。谁能告诉我这里发生了什么问题?python openssl问题

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() 
+0

得到它的字符串,我应该结束我发送到与\ r \ n – tsudot 2010-09-18 18:16:58

+2

服务器字符串你有没有考虑过使用['poplib'] (http://docs.python.org/library/poplib.html)呢? – NullUserException 2010-09-18 18:20:39

+0

如果你找到了解决方案,你应该把它放在一个答案中,如果没有人提出你更喜欢的东西,几天后标记为“最佳答案”。否则,这将保留在没有回答的问题列表中。 (第二个NullUserException的建议是检查poplib,它应该为你节省很多这种低级别的麻烦。) – ssokolow 2010-09-18 18:53:44

回答