2008-11-03 68 views
-1

嘿,我有一個運行python CGI腳本的windows服務器,我對smtplib有點麻煩。服務器運行python 2.1(不幸的是我無法升級它)。無論如何,我有以下代碼:python smtplib

 
    session = smtplib.SMTP("smtp-auth.ourhosting.com", 587) 
    session.login(smtpuser, smtppass) 

和它給我這個錯誤:

exceptions.AttributeError : SMTP instance has no attribute 'login' :

我假設這是因爲在Python 2.1中後添加的login()方法。那麼我該如何解決這個問題?

我必須要麼通過將文件上傳到同一目錄中的CGI腳本(雖然我相信是的smtplib C語言編寫的,需要進行編譯,我們不能做到這一點的服務器上)

添加模塊

OR

做它的任何方式由libsmtp預計在Python 2.1

非常感謝!

回答

4

login()是Python 2.2中引入的,對你不利!在Python 2.1自己的smtplib中完成這項工作的唯一方法是手動發出AUTH命令,這不會很有趣。

我還沒有完全測試它,但它似乎Python 2.2的smtplib應該或多或少的2.1上工作,如果你按照你的描述複製它(也許稱之爲smtplib2.py)。它只是一個Python模塊,不需要C編譯。不過,您至少需要複製它在2.2的lib中依賴的hmac.py庫。如果您使用更高版本的Python版本來開始竊取郵件,這可能會更有用。

0

Do it whatever way is expected by the libsmtp in python 2.1