[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

inviare email con python [ERA: Programma in SH ]



Il ven, mar 21, 2014 at 6:44 , Gian Uberto Lauri <saint@eng.it> ha scritto:
fede@inventati.org writes: > Per l'appunto mi serviva questo esempio... > Però la presenza di caratteri non ascii produce un errore. C'è un modo > pythonico per evitare il problema? Usare UTF-8? Con python devi usare una stringa particolare subito dopo la riga con lo shebang (#! she sta per shell e bang è un nomgnolo del carattere !). Ecco la stringa: # -*- coding: utf-8 -*- I problemi quando e dove li hai? Probabilmente devi usare un editor un po' serio che ti permetta di dire "usa la codifica utf-8", ne conosco almeno 2 per Linux, forse 3...

No, il problema è diverso.
L'encoding l'avevo messo.. Ora non ho più accesso al file, ci riprovo lunedì.

Comunque ho fatto una nuova prova prendendo spunto dal primo esempio che c'è qui:
http://docs.python.org/3.3/library/email-examples.html

Sto usando, come corpo del messaggio, un file di testo ascii (verificato con file), ma ottengo questo errore:

$ ./email-test.py 
Traceback (most recent call last):
  File "./email-test.py", line 14, in <module>
    msg = MIMEText(fp.read())
  File "/usr/lib/python3.3/email/mime/text.py", line 34, in __init__
    _text.encode('us-ascii')
AttributeError: 'bytes' object has no attribute 'encode'

La riga 14 del mio file è:
msg = MIMEText(fp.read())

Ah, trovato l'errore: non devo aprire il file come byte ma come stringa (?). Quindi riscrivo questa riga:

fp = open(textfile, 'rb')

così:

fp = open(textfile, 'r')

ora funziona.
Perché nella documentazione hanno messo 'rb'?


Reply to: