0

telnet ライブラリから結果を取得する際にいくつかの問題がありますが、取得しているのはヘッダーと、入力を待っている空白だけです。

Telnet から出力を取得する方法はありますか?

def smtp_test(server_info):
print "Check server info: " + server_info
cpos = server_info.find(':')
try:
    sock = socket()
    # sock.connect((server_info[:cpos], int(server_info[cpos+1:])))
    sock.connect(("mail.SMTPSERVERNAME.com", 25))
    print sock.recv(256)
    sock.send("HELO client.example.com\r")
    print sock.recv(256)
    sock.send("MAIL from: <sender@example.com>\r")
    print sock.recv(256)
    #sock.send("RCPT to: <recipient@example.com>")
    #print sock.recv(256)
    sock.close
    return True
except:
    return False
4

1 に答える 1

2

\r行末記号ではありません。したがって、サーバーからの応答を待っている間、サーバーは応答せず、完全な行が表示されるまで待機します。古典的なデッドロック。

使ってみてください\r\n

smtplib代わりに使用することを検討する必要があります。

于 2012-05-18T10:35:58.093 に答える