嘿,我有一个运行python CGI脚本的Windows服务器,我在使用smtplib时遇到了一些麻烦。服务器正在运行python 2.1(遗憾的是我无法升级它)。无论如何,我有以下代码:

<代码>

    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

按照python 2.1中libsmtp的预期方式执行。

非常感谢!

有帮助吗?

解决方案

login()是在Python 2.2中引入的,不幸的是你!在Python 2.1自己的smtplib中执行此操作的唯一方法是手动发出AUTH命令,这不会太有趣。

我还没有完全测试过,但是如果你按照你的描述复制它(可能称之为smtplib2.py),似乎Python 2.2的smtplib应该或多或少地在2.1上工作。它只是一个Python模块,不需要C编译。但是,您至少需要复制它依赖于2.2的lib的hmac.py库。如果您使用以后的Python版本来窃取它,那么它也开始需要电子邮件包,这可能会更有效。

其他提示

  

按照python 2.1中libsmtp的预期方式执行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top