Crea sito

Insel der Engel'

Il mio piccolo pezzo di Paradiso

 
Tag: Opera Mail

Aggiungere Web Mail provider in Opera 10

Attenzione: il procedimento descritto nell’articolo fa riferimento ad una funzionalità ancora in lavorazione che pertanto potrebbe subire modifiche anche sostanziali in un prossimo futuro.

Nell’articolo precedente abbiamo visto come le ultime build di Opera 10 siano in grado di gestire le Web Mail come client di posta predefinito e vi avevo anticipato che, qualora il vostro provider non fosse fra quelli disponibili, sarebbe stato comunque possibilie aggiungerlo manualmente. Vediamo quindi come aggiungere il nostro provider.

Innanzitutto localizziamo il file webmailproviders.ini che si trova nella cartella \defaults della directory di Opera. Questo contiene la lista di tutti i servizi disponibili nella forma seguente:

[Gmail]
ID=1
URL=https://mail.google.com/mail/?extsrc=mailto&url=%s
ICON=http://mail.google.com/favicon.ico

I meno smaliziati si chiederanno probabilmente cosa significhino esattamente queste stringhe e come usarle.

  • La prima riga indica il nome del provider che verrà visualizzato nel programma. Trattandosi di un file .ini ovviamente è necessario racchiudere il nome fra parentesi quadre.
  • ID indentifica in modo univoco il servizio. E’ necessario usare una numerazione progressiva per i vari servizi.
  • URL è l’indirizzo usato dal provider per gestire il protocollo mailto attraverso la web mail. “%s” è la parte variabile che verrà di volta in volta sostituita con i dati del link mailto che cliccherete (indirizzo, oggetto, ecc…).
    Attualmente sono permessi anche URL Data e Javascript.
  • Icon infine indica il percorso della favicon della web mail.

Alla luce di tutto ciò appare quindi evidente che per poter aggiungere il nostro servizio di posta è necessario conoscere l’indirizzo dell’handler mailto (URL).

Purtroppo però non tutti i provider hanno tale caratteristica, ma possono ugualmente compilare i vari campi automaticamente specificandoli con variabili separate, anzichè con la sola “%s”, secondo questo schema:

  • %t = il destinatario
  • %s = l’oggetto
  • %m = il corpo del messaggio
  • %c = CC’d recipients
  • %b = BCC’d recipients.

Per rendere meglio l’idea analizziamo quindi come dovrebbe essere modificato l’URL nel caso di Gmail:

"http://mail.google.com/mail/?view=cm&fs=1&to=%t&su=%s&body=%m&cc=%c&bcc=%b"

Ancora una volta però i problemi non mancano in quanto, almeno per il momento, Opera non è ancora in grado di gestire questo tipo di URL e bisogna prima trasfromarli in un Data o Javascript URL come nell’esempio seguente:

[Operamail.com]
ID=4
URL=javascript:(function(uri)%7B%0D%0Afunction%20decode(s)%7Btry%7Breturn%20decodeURIComponent(s).replace(%2F%5Cr%5Cn%7C%5Cr%7C%5Cn%2Fg%2C%22%5Cr%5Cn%22)%3B%7Dcatch(e)%7Breturn%20%22Opera%20percent-decode%20error%22%3B%7D%7D%0D%0Afunction%20encode(s)%7Btry%7Breturn%20encodeURIComponent(s)%3B%7Dcatch(e)%7Breturn%20%22Opera%2520percent-encode%2520error%22%3B%7D%7D%0D%0Afunction%20escapeInvalidHH(s)%7Breturn%20s.replace(%2F%25(%3F!%5B0-9A-F%5D%7B2%7D)%2Fgi%2Cfunction()%7Breturn%20%22%2525%22%3B%7D)%3B%7D%0D%0Afunction%20escapeUnsafeHH(s)%7Breturn%20s.replace(%2F%2500%7C%2501%7C%2502%7C%2503%7C%2504%7C%2505%7C%2506%7C%2507%7C%2508%7C%250B%7C%250C%7C%250E%7C%250F%7C%2510%7C%2511%7C%2512%7C%2513%7C%2514%7C%2515%7C%2516%7C%2517%7C%2518%7C%2519%7C%251A%7C%251B%7C%251C%7C%251D%7C%251E%7C%251F%2Fgi%2Cfunction(match)%7Breturn%20encode(match)%3B%7D)%3B%7D%0D%0Afunction%20filterSingleLine(s)%7Breturn%20s.replace(%2F%5Cr%7C%5Cn%2Fg%2C%22%22)%3B%7D%0D%0Afunction%20MailtoURIParser(s)%7Bthis.parse(escapeUnsafeHH(escapeInvalidHH(%22to%3D%22%2Buri.substr(7).replace(%2F%5C%3F%2F%2C%22%26%22))))%3B%7D%0D%0AMailtoURIParser.prototype%3D%7Bparse%3Afunction(dataset)%7Bthis.to%3Dthis.subject%3Dthis.body%3Dthis.cc%3Dthis.bcc%3D%22%22%3Bvar%20ref%3Dthis%3Bdataset.replace(%2F(%5B%5E%3D%26%5D%2B)%3D(%5B%5E%26%5D*)%2Fg%2Cfunction(match%2Chname%2Chvalue)%7Bhname%3Ddecode(hname).toLowerCase()%3Bif(hname%3D%3D%22to%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.to!%3D%22%22)%7Bref.to%2B%3D%22%252C%2520%22%3B%7Dref.to%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22cc%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.cc!%3D%22%22)%7Bref.cc%2B%3D%22%252C%2520%22%3B%7Dref.cc%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22bcc%22)%7Bif(hvalue!%3D%22%22)%7Bif(ref.bcc!%3D%22%22)%7Bref.bcc%2B%3D%22%252C%2520%22%3B%7Dref.bcc%2B%3Dhvalue%3B%7D%7Delse%20if(hname%3D%3D%22subject%22)%7Bref.subject%3Dhvalue%3B%7Delse%20if(hname%3D%3D%22body%22)%7Bif(!(hvalue%3D%3D%22%22%26%26ref.body%3D%3D%22%22))%7Bif(ref.body!%3D%22%22)%7Bref.body%2B%3D%22%250D%250A%22%3B%7Dref.body%2B%3Dhvalue%3B%7D%7D%7D)%3Bthis.to%3Dencode(filterSingleLine(decode(this.to)))%3Bthis.subject%3Dencode(filterSingleLine(decode(this.subject)))%3Bthis.body%3Dencode(decode(this.body))%3Bthis.cc%3Dencode(filterSingleLine(decode(this.cc)))%3Bthis.bcc%3Dencode(filterSingleLine(decode(this.bcc)))%3B%7D%2Cformat%3Afunction(s)%7Bvar%20ref%3Dthis%3Breturn%20s.replace(%2F(%25%25)%7C(%25T)%7C(%25S)%7C(%25M)%7C(%25C)%7C(%25B)%7C(%25w)%2Fg%2Cfunction(match%2Ca%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg)%7Bif(a)return%20%22%25%22%3Bif(b)return%20ref.to%3Bif(c)return%20ref.subject%3Bif(d)return%20ref.body%3Bif(e)return%20ref.cc%3Bif(f)return%20ref.bcc%3Bif(g)return%20encode(%22mailto%3A%22%2Bref.to%2B%22%3Fsubject%3D%22%2Bref.subject%2B%22%26body%3D%22%2Bref.body%2B%22%26cc%3D%22%2Bref.cc%2B%22%26bcc%3D%22%2Bref.bcc)%3B%7D)%3B%7D%7D%3B%0D%0Aif(uri.search(%2Fmailto%3A%2Fi)!%3D0)%7Bthrow%20%22Not%20a%20MailtoURI%22%3B%7D%0D%0Avar%20parser%3Dnew%20MailtoURIParser(uri)%3B%0D%0Avar%20compose%3Dparser.format(%22http%3A%2F%2Fmymail.operamail.com%2Fscripts%2Fmail%2FOutblaze.mail%3Fcompose%3D1%26did%3D1%26a%3D1%26to%3D%25T%26subject%3D%25S%26body%3D%25M%26cc%3D%25C%26bcc%3D%25B%22)%3B%0D%0Avar%20a%3Ddocument.createElementNS(%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%2C%22a%22)%3Ba.href%3Dcompose%3Ba.click()%3B%0D%0A%7D)(%22%s%22)%3B
ICON=http://www.opera.com/favicon.ico

Chiaramente si tratta di una procedura non alla portata di tutti e che, si spera, presto non sarà più necessaria. Ma se nel frattempo volete cominciare a sperimentare nessuno potrà impedirvelo. 😉

Opera 10 si integrerà con le Web Mail

A dispetto di ogni mia previsione o aspettativa, il Desktop Team pare abbia finalmente accolto, seppure in modo ancora parziale, le numerose richieste dei suoi utenti riguardo un sostanziale miglioramento e potenziamento della gestione della posta in Opera 10.

Se con la prima alpha della prossima major release, Opera Mail (questo il nuovo nome di M2) aveva infatti introdotto il tanto desiderato supporto alla composizione in formato html e svariate migliorie volte a semplificare la vita dell’utente, con l’ultima weekly build si è voluto fare un ulteriore passo proprio in quest’ultima direzione aggiungendo il supporto nativo ai servizi Web Mail.

Ciò significa che sarà ora possibile, come del resto avviene già da tempo in Firefox 3, usare come client di posta predefinito direttamente l’interfaccia web di servizi come Gmail, Yahoo! Mail, e Windows Live Hotmail, anzichè dover ricorrere al protocollo POP3 o IMAP.

Tradotto in termini ancora più semplici, vi basterà adesso cliccare su un collegamento mailto: per aprire la pagina di composizione della vostra web mail, con tanto di campi come destinatario o oggetto eventualmente già compilati come nell’esempio sottostante:

Link

Una bella comodità per chi preferisce le sempre più evolute interfaccie ajax ai classici client desktop.

Per i maggiori providers il tutto avverrà in maniera trasparente senza che sia necessaria alcuna configurazione manuale da parte dell’utente. Al primo click su un collegamento mailto verrà semplicemente chiesto se si intende usare il client email predefinito di sistema, il client integrato in Opera, oppure una delle Web Mail supportate.

Tuttavia è ancora presto per poter testare a dovere questa nuova funzionalità.

Attualmente gli unici providers supportati sono infatti Gmail, Yahoo! Mail e Windows Live Hotmail, e, peraltro, gli ultimi due necessitano una versione recente del browser.js, senza contare che Yahoo continua a non funzionare come dovrebbe limitandosi ad aprire la finestra di benvenuto anzichè quella di composizione.

E’ ancora in corso una discussione fra gli sviluppatori se sia preferibile permettere ai providers di aggiungersi alla lista in modo automatico secondo le specifiche del WHATWG oppure procedere in proprio.

Sia come sia poco importa. Ciò che conta è aver finalmente colmato anche questa lacuna. E se il vostro provider non figura fra quelli disponibili non preoccupatevi, sarà sempre possibile aggiungerlo manualmente. Ma per questo vi do appuntamento alla prossima. 😉