Вопрос

Привет, у меня есть сервер Windows, на котором запущены CGI-скрипты python, и у меня возникли небольшие проблемы с 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 и должен быть скомпилирован, чего мы не можем сделать на этом сервере)

или

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top