2008-11-03 51 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