python smtplib
-
06-07-2019 - |
Pergunta
Hey Eu tenho um servidor Windows rodando scripts CGI python e estou tendo um pouco de dificuldade com smtplib. O servidor está executando python 2.1 (infelizmente e eu não posso atualizá-lo). De qualquer forma eu tenho o seguinte código:
session = smtplib.SMTP("smtp-auth.ourhosting.com", 587)
session.login(smtpuser, smtppass)
e ele está me dando esse erro:
exceptions.AttributeError : SMTP instance has no attribute 'login' :
Eu estou assumindo que este é porque o método login () foi adicionado após python 2.1. assim como faço para corrigir isso?
Eu tenho que adicionar o módulo por meio do upload dos arquivos para o mesmo diretório que o script CGI (embora eu acredite smtplib é escrito em C e precisa ser compilado que não podemos fazer neste servidor)
ou
Faça o que maneira está prevista para o libsmtp em python 2.1
Muito obrigado!
Solução
login () foi introduzido no Python 2.2, infelizmente para você! A única maneira de fazê-lo em Python própria smtplib 2.1 de seria para emitir os comandos AUTH manualmente, o que não seria muito divertido.
Eu não testei-lo totalmente, mas parece smtplib Python 2.2 do deve mais ou menos trabalho em 2,1 se você copiá-lo transversalmente como você descreve (talvez chamá-lo smtplib2.py). É apenas um módulo Python, não compilação C deve ser necessário. No entanto, você vai pelo menos necessidade de copiar a biblioteca hmac.py ele depende de lib 2.2 do bem. Se você usar uma versão posterior Python para roubar ele começa exigindo que o pacote de e-mail também que pode ser mais trabalho.
Outras dicas
Faça o que maneira está prevista para o libsmtp em python 2.1