Aiuto con script python

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Eberoth
Linux 2.x
Linux 2.x
Messaggi: 403
Iscritto il: lun 24 ago 2009, 9:22
Slackware: -current
Kernel: 3.13.6
Desktop: KDE4
Distribuzione: Slackel64

Aiuto con script python

Messaggio da Eberoth »

Salve,
Premetto che sono praticamente a digiuno di python (avevo cominciato a studiarlo, ma poi altri impegni hanno avuto la meglio), quindi il mio problema potrebbe essere frutto di banale ignoranza.

Detto questo, da tempo uso uno script python per controllare la presenza di messaggi non letti nel mio account gmail ed ha sempre funzionato benissimo. Oggi ho attivato un nuovo account su gmx.com e quindi ho provato a riadattare lo script in modo da gestire i messaggi sul mio nuovo indirizzo. Ma quando lo lancio da shell per provarlo mi restituisce questi errori:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "prova.py", line 37, in <module>
    if __name__ == '__main__' : main()
  File "prova.py", line 35, in main
    check_mail(Server, username, passwd)
  File "prova.py", line 16, in check_mail
    mb.login(username, passwd)
  File "/usr/lib64/python2.6/imaplib.py", line 500, in login
    raise self.error(dat[-1])
imaplib.error: authentication failed
Il codice dello script, epurato dai miei dati personali, è:
(l'username è effettivamente nella forma riportata)

Codice: Seleziona tutto

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import imaplib
import pynotify

def check_mail(Server, username, passwd):
	
	try:
		mb = imaplib.IMAP4_SSL(Server)
	except:
		print 'An error occurred!'
		sys.exit()
		
	mb.login(username, passwd)
	res = mb.status('INBOX', '(UNSEEN)')

	num_messaggio = int(res[1][0].split()[-1][0:-1])
	
	if num_messaggio == 0:
		print 'No new messages'
	else:
		print '%d New messages' % (num_messaggio)
		n = pynotify.Notification('GMX: %d new message(s)!' % num_messaggio)
		n.show()
		
	mb.logout()


def main():
	Server = 'imap.gmx.com'
	username = 'user.name@gmx.com'
	passwd = 'passwd'
	check_mail(Server, username, passwd)

if __name__ == '__main__' : main()
So che avere psw e username in chiaro non è il massimo come sicurezza, ma ad oggi è il meglio che riesco a fare (ogni suggerimento è ben accetto).

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Aiuto con script python

Messaggio da targzeta »

Anche io non sono espertissimo in python, però quel:

Codice: Seleziona tutto

imaplib.error: authentication failed
mi sembra un buon punto di inizio, no?

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
Eberoth
Linux 2.x
Linux 2.x
Messaggi: 403
Iscritto il: lun 24 ago 2009, 9:22
Slackware: -current
Kernel: 3.13.6
Desktop: KDE4
Distribuzione: Slackel64

Re: Aiuto con script python

Messaggio da Eberoth »

Sì, lo sembrava anche a me prima di passare un'ora su google senza riuscire a risolvere... la maggior parte dei risultati risultati non ha nulla a che vedere col mio caso (e praticamente tutti riguardano gmail), il resto punta ai vari manuali su imaplib.py che, però, consistono in una lunga lista di opzioni, comandi e variabili... abbastanza inutili visto il mio livello di python ed il loro carattere estremamente generale.
Al momento so solo che il problema è nell'autenticazione, ma non ho idea di quale sia il problema né di cosa fare per risolverlo.

Rispondi