Question

Hé, j’ai un serveur Windows qui exécute des scripts CGI en python et j’ai un petit problème avec smtplib. Le serveur exécute Python 2.1 (malheureusement et je ne peux pas le mettre à jour). En tout cas j'ai le code suivant:

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

et ça me donne cette erreur:

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

Je suppose que c'est parce que la méthode login () a été ajoutée après Python 2.1. alors comment puis-je résoudre ce problème?

Je dois soit ajouter le module en téléchargeant les fichiers dans le même répertoire que le script cgi (bien que je pense que smtplib est écrit en C et doit être compilé, ce que nous ne pouvons pas faire sur ce serveur)

OU

Faites-le comme prévu par libsmtp dans Python 2.1

Merci beaucoup!

Était-ce utile?

La solution

login () a été introduit dans Python 2.2, malheureusement pour vous! Le seul moyen de le faire dans smtplib propre à Python 2.1 serait d’émettre les commandes AUTH manuellement, ce qui ne serait pas très amusant.

Je ne l'ai pas encore complètement testé, mais il semble que smtplib de Python 2.2 devrait plus ou moins fonctionner sur la version 2.1 si vous le copiez comme vous le décrivez (appelez peut-être smtplib2.py). Ce n'est qu'un module Python, aucune compilation en C ne devrait être nécessaire. Cependant, vous aurez au moins besoin de copier la bibliothèque hmac.py sur laquelle elle s'appuie également depuis la lib de 2.2. Si vous utilisez une version ultérieure de Python pour voler, elle nécessite également le package de courrier électronique, ce qui peut nécessiter plus de travail.

Autres conseils

  

Faites-le comme prévu par libsmtp dans Python 2.1

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top