[Plone-IT] Aggiunta di un Header a messagio mail

Silvio silviot a gmail.com
Sab 12 Nov 2011 11:20:03 UTC


2011/11/11 lucagent <luka.gentili a gmail.com>

> 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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20111112/6df6ba18/attachment-0002.html>


Maggiori informazioni sulla lista Plone-IT