Pregunta

Hola, tengo un servidor de Windows que ejecuta scripts Python CGI y estoy teniendo algunos problemas con smtplib. El servidor ejecuta python 2.1 (desafortunadamente y no puedo actualizarlo). De todos modos tengo el siguiente código:

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

y me está dando este error:

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

Supongo que esto se debe a que el método login () se agregó después de python 2.1. Entonces, ¿cómo puedo solucionar esto?

Tengo que agregar el módulo cargando los archivos en el mismo directorio que el script cgi (aunque creo que smtplib está escrito en C y necesita compilarse, lo que no podemos hacer en este servidor)

O

Hazlo de la forma esperada por libsmtp en python 2.1

¡Muchas gracias!

¿Fue útil?

Solución

login () se introdujo en Python 2.2, ¡desafortunadamente para ti! La única forma de hacerlo en el propio smtplib de Python 2.1 sería emitir los comandos AUTH manualmente, lo que no sería muy divertido.

No lo he probado completamente, pero parece que smtplib de Python 2.2 debería funcionar más o menos en 2.1 si lo copia como lo describe (tal vez lo llame smtplib2.py). Es solo un módulo de Python, no debería ser necesaria una compilación de C. Sin embargo, al menos necesitará copiar la biblioteca hmac.py en la que se basa también la lib de 2.2. Si usa una versión posterior de Python para robarla, también comenzará a requerir el paquete de correo electrónico, lo que podría ser más trabajo.

Otros consejos

  

Hazlo de la forma esperada por libsmtp en python 2.1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top