Domanda

Ehi, ho un server Windows con script CGI python e ho qualche problema con smtplib. Il server esegue python 2.1 (purtroppo e non riesco ad aggiornarlo). Comunque ho il seguente codice:

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

e mi sta dando questo errore:

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

Suppongo che questo sia dovuto al fatto che il metodo login () è stato aggiunto dopo Python 2.1. quindi come posso risolvere questo problema?

Devo aggiungere il modulo caricando i file nella stessa directory dello script cgi (anche se credo che smtplib sia scritto in C e debba essere compilato, cosa che non possiamo fare su questo server)

o

Fallo come previsto da libsmtp in python 2.1

Grazie mille!

È stato utile?

Soluzione

login () è stato introdotto in Python 2.2, sfortunatamente per te! L'unico modo per farlo nello smtplib di Python 2.1 sarebbe quello di emettere manualmente i comandi AUTH, il che non sarebbe molto divertente.

Non l'ho provato completamente ma sembra che smtplib di Python 2.2 dovrebbe funzionare più o meno su 2.1 se lo copi come descrivi (forse lo chiami smtplib2.py). È solo un modulo Python, non dovrebbe essere necessaria alcuna compilazione C. Comunque dovrai almeno copiare la libreria hmac.py su cui fa affidamento anche dalla lib di 2.2. Se usi una versione successiva di Python per rubare da essa, inizia anche a richiedere il pacchetto di posta elettronica che potrebbe essere più efficace.

Altri suggerimenti

  

Fallo come previsto da libsmtp in python 2.1

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top