2008-11-03 4 views
-1

Привет, У меня есть сервер Windows, на котором запущены скрипты CGI на Python, и у меня небольшие проблемы с 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' :

Я предполагаю, что это происходит потому, что метод Логин() был добавлен после того, как питон 2.1. так как я могу это исправить?

я должен либо добавить модуль путем загрузки файлов в тот же каталог, что и сценарий CGI (хотя я считаю, smtplib написан на C и должен быть скомпилирован, которые мы не можем сделать на этом сервере)

ИЛИ

Сделайте это любым способом, как ожидается, в libsmtp в Python 2.1

Спасибо так много!

ответ

4

login() был введен в Python 2.2, к несчастью для вас! Единственный способ сделать это в собственном smtplib Python 2.1 - это вручную выдать команды AUTH, что было бы не очень весело.

Я не тестировал его полностью, но похоже, что smtplib Python 2.2 должен более или менее работать на 2.1, если вы скопируете его, как вы описываете (возможно, назовите его smtplib2.py). Это всего лишь модуль Python, компиляция C не нужна. Однако вам, по крайней мере, нужно будет скопировать библиотеку hmac.py, в которой она опирается также на версию 2.2. Если вы используете более позднюю версию Python для кражи, она начинает требовать также пакет электронной почты, который может быть более полезен.

0

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

Смежные вопросы