2011/11/11 lucagent <[email protected]> > Salve, > provo a riscrivere anche se l'ultima volta non ci sono state risposte. > Tieni presente che questo è un servizio su base volontaria, non il supporto tecnico di un'azienda.
così funziona ... ma non posso utilizzare caratteri accentati o altri > caratteri non ascii ... ... ... > > avete qualche idea o suggerimento o link dove andare a vedere ?!?!? la cosa > più rapida sarebbe poter avere i privilegi per accedere alla email.Header > ... ma non so come si può fare (se si può) Mi sembra di capire che tu finora abbia sviluppato TTW (senza mettere codice sul filesystem, editandolo nel browser). Oltre ai palesi vantaggi degli oggetti *Script (Python)<http://pypi.python.org/pypi/Products.PythonScripts> * (velocità di prototipizzazione e sviluppo) ci sono degli svantaggi: - non puoi utilizzare un VCS per tenere conto delle revisioni - non puoi usare direttamente un editor, ma devi usare il browser - sei soggetto ai controlli di sicurezza di Zope, che per ogni statement devono controllare se l'utente che ha causato l'esecuzione dello script ha i permessi per eseguire l'istruzione, con impatto sulle performance e l'impossibilità di utilizzare quasi tutti i moduli della standard library Vedi https://plone.org/documentation/faq/restricted-python-scripts, anche se ti sconsiglio di usare un External Method: meglio creare un package<http://pypi.python.org/pypi/ZopeSkel/2.21.2>in cui registri una vista<http://collective-docs.readthedocs.org/en/latest/views/browserviews.html#creating-and-registering-a-view>, consultandola poi con un traverse<http://collective-docs.readthedocs.org/en/latest/views/browserviews.html#by-using-traversing> ). Se non hai mai creato un package il processo può risultare lungo, e forse è meglio risolvere il problema delle accentate. Sembra che l'encoding degli oggetti unicode nei PythonScript non sia molto prevedibile: return repr("Città") + ", " + repr(u"Città") In un PythonScript restituisce 'Citt\xc3\xa0', u'Citt\xc3\xa0' Mentre da console (python normale) 'Citt\xc3\xa0', u'Citt\xe0' Un altro motivo per usare il meno possibile lo sviluppo TTW. Comunque, tu fai context.MailHost.send(message.encode("utf-8"),encode="quoted-printable") con message di tipo stringa: implicitamente l'istruzione encode diventa message.decode('ascii').encode('utf-8') e quindi dà errore se ci sono accentate (che mancano in ascii). Prova ad usare context.MailHost.send(message). Per le accentate nel subject dovrai usare comunque il modulo email.header<http://docs.python.org/library/email.header.html>, poichè lo standard delle email prevede gli header a 7 bit. Fare un prodotto su filesystem per risolvere un problema simile sembra troppo macchinoso, ma i vantaggi generali dell'avere il codice sotto controllo sono impagabili. Silvio
_______________________________________________ Plone-IT mailing list [email protected] https://lists.plone.org/mailman/listinfo/plone-plone-it http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
