-1

Pythonでtelnetlibを使用して、単純なメールサーバーに接続し、電子メールを送信します。DATAコマンドを入力した後、最後まですべて正常に機能します。メッセージの本文を送信し、サーバーのキューに電子メールを送信するには、ピリオド「。」を入力する必要があります。それ自体が新しい行にあるので、私の終了トランザクションスニペ​​ットは次のようになります

self.tnet.write("\n.\n")
self.tnet.read_until("250")

ここで、self.tnetは私のtelnetセッションvarであり、read_untilは、電子メールが電子メールサーバーのキューに送信され、配信の途中であるという250Okの応答を待ちます。ただし、250 Okの応答が返されず、接続が10秒のタイムアウトフラグにタイムアウトし、受信トレイに電子メールが受信されません...何かアイデアはありますか?IVEも試してみました

self.tnet.write(raw_input()+"\n")

とiveも生のソケットをつかんでみました

self.sock=self.tnet.get_socket()
self.sock.send(".\n")
print self.sock.recv(1024)

応答がありません...:/ iveは、リターンキャリッジ「\r」を「\n」と組み合わせて試しましたが、それだけでは役に立ちませんでした。

何か案は?

ありがとう、〜george

4

1 に答える 1

1

<CR><LF>改行シーケンスを試す必要があります:

self.tnet.write("\r\n.\r\n")

それが役立つことを願っています

于 2011-10-16T23:10:59.097 に答える