питон smtplib - PullRequest
       15

питон smtplib

0 голосов
/ 03 ноября 2008

Эй, у меня есть сервер Windows, на котором выполняются сценарии Python CGI, и у меня возникли небольшие проблемы с smtplib. На сервере работает python 2.1 (к сожалению, и я не могу его обновить). В любом случае у меня есть следующий код:

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

и это дает мне эту ошибку:

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

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

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

OR

Делайте это так, как того требует libsmtp в python 2.1

Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 03 ноября 2008

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 голосов
/ 03 ноября 2008

Делайте это так, как того требует libsmtp в python 2.1

...