[EN] Bash scripts & Apple Mail (.emlx files)

04/10/2010

Introduction
Apple Mail 3.6 is the default e-mail client for Mac OS X Leopard. It’s a very good client, with tons of unique features (such as smart folders) but if you need to go advanced, well… you need the power of Bash shell and some command-line kung-fu.

The really cool stuff about Apple Mail is that it saves e-mails as multiple .emlx files (one .emlx file = one e-mail), instead of compressing all your mailbox inside a big, chunky, bloated .mbox file like many other clients do. The .emlx approach slows up a lot Apple Mail when you get a big mailbox (20000+ mails), but it’s easy to deal with it via Bash scripts.

I made four handy Bash scripts to deal with Apple Mail. The posts are written in italian, but the sourcecodes (comments, error messages, variable names..) are written in english. You have to provide the path to your mailbox folder to some of these scripts , so change the “mail_folder” variable according to your needs before executing the scripts. To run the scripts, launch the Terminal and type something like (change the script name according to your needs):


chmod +x mail2topwordlist.sh
sh mail2topwordlist.sh

Leggi il seguito di questo post »

Annunci

[IT] Il comando uptime in MS-Dos: l’ennesima porcata made in Microsoft

19/09/2010

Da utente con un buon background *NIX, ricavare l’uptime (il tempo di funzionamento del sistema dall’ultima accensione) di una macchina per me è sempre stato sinonimo di apertura del Terminale e immissione del comando “uptime“.

Semplice, veloce, facile da memorizzare, facile da adoperare negli scripts e soprattutto universale.

Ma su MS-Dos, brutta copia delle shell *NIX, anche le operazioni così semplici diventano fonte inesauribile di bestemmie, e dimostrano, per l’ennesima volta, quanto i software Microsoft siano stati prodotti senza un’efficiente pianificazione su carta prima della stesura del codice.
Leggi il seguito di questo post »


[IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) – Parte 4/4

04/09/2010

Parte 1/4, Parte 2/4, Parte 3/4

Introduzione:

L’ultimo script che vi presento non si interfaccia direttamente con Apple Mail, bensì funge da strumento di supporto al primo script,trasformando il file CSV prodotto da quest’ultimo in un “cloud text”, ovvero in un file di testo da usare per ricavare un tag cloud.

Lo script csv2cloudtext.sh:
Mettiamo caso che abbiate a disposizione una lista di parole e la relativa ricorrenza, nella forma:

inutile,5
microcefalo,3
tronista,2
violenza,1

e desideriate automaticamente ricavarne un file di testo strutturato come segue:

inutile
inutile
inutile
inutile
inutile
microcefalo
microcefalo
microcefalo
tronista
tronista
violenza

da incollare in servizi come Tagcrowd.com (quello che adopero io) per ricavarne un ben più leggibile tag cloud, ovvero una nuvola grafica in cui le parole vengano evidenziate in proporzione alla loro ricorrenza.

Ecco, il mio script fa esattamente questo.
Leggi il seguito di questo post »


[IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) (Mac OS X Leopard) – Parte 3/4

31/08/2010

Parte 1/4, Parte 2/4

Introduzione:
Quello che vi propongo oggi è lo script più “raw” della collezione: funziona ma necessiterebbe di alcune rifiniture ulteriori, che non sono esattamente semplici da mettere in atto per caratteristiche intrinseche della shell Bash e del formato .emlx. Ad ogni modo, ho deciso di condividerlo comunque, perchè girando sulla Rete mi sono reso conto che nessuno ha sviluppato una soluzione del genere finora.

Lo script mail2book.sh:
Mettiamo caso che riceviate/inviate una serie di e-mail il cui titolo inizi con la stessa stringa, a mò di etichetta, per esempio: “[Pink News]“:

[Pink News] Puntata #1
[Pink News] Puntata #2
[Pink News] Puntata #3
[Pink News] Puntata #4
[Pink News] Bonus estate

Tutte queste e-mail (titolo + corpo) volete raggrupparle in un unico file di testo, proprio a mò di libro.
Leggi il seguito di questo post »


[IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) – Parte 2/4

25/08/2010

Parte 1/4

Introduzione:
Dopo lo script Bash che estrae tutte le parole dal corpo delle vostre email e genera una lista delle parole più usate presentato nella prima parte, vado ora ad illustrarvi un secondo script, che svolge un altro compito decisamente utile chi usa intensamente Gmail (leggere: Tutorial: come creare una newsletter e/o una mailing-list gratuitamente e velocemente usando GMail).

Lo script mail2subjectslist.sh:
Vi siete mai chiesti quali sono le e-mail dal titolo più ricorrente nella vostra casella di posta? Oppure le e-mail che generano più risposte (replies)? Se sì, questo script vi solleticherà il palato.
Leggi il seguito di questo post »


[IT] Bash: come interfacciarsi con Apple Mail via script (Mac OS X Leopard) – Parte 1/4

22/08/2010

Introduzione:
Sulla mia macchina Mac OS X Leopard uso Apple Mail come client di posta, perchè ha una serie di funzioni (come le smart folders) e chicche di usabilità che altri client si sognano. Ma quando avete esigenze che esulano da quelle standard, come nel mio caso (ma va? quando mai!), bisogna ricorrere ad altri strumenti per portare a compimento il lavoro. Nel mio caso, lo strumento da me scelto è la mia amata (e immensamente potente) shell Bash.

La Apple per il suo client Mail ha scelto un approccio diverso da tutti gli altri client sulla piazza: la posta scaricata, infatti, non viene tutta compressa in un unica, elefantiaca mailbox e salvata nel comunissimo formato .mbox, bensì ogni e-mail viene salvata in un file .emlx a sè stante. Se questa scelta da un lato ha lo svantaggio di rallentare parecchio il software nella gestione di caselle di 20000+ email, di contro rende semplicissimo usare strumenti di terze parti per interfacciarsi con la posta scaricata da Mail.

Un file .emlx, infati, non è altro che un comune file di testo contenente tutte le informazioni relative ad una e-mail, nè più nè meno. Provate ad aprirne uno con TextEdit (o altro editor a scelta) e vi renderete conto da soli che non vi sto imbarcando di cazzate 🙂

I quattro scripts che vi illustrerò in questa serie di tutorial servono tutti a trasformare le mail ricevute in una serie di dati utilizzabili ai fini statistici e/o per levarsi qualche curiosità 🙂 Per non “sporcare” i risultati è quindi consigliabile ripulire la propria casella con Mail (a mano o usando apposite smart folders) da e-mail inutili, come possono essere spam, pubblicità varie, newsletter etc. Se non si vogliono eliminare, si possono spostare temporaneamente da Posta In Arrivo in un altra cartella, per poi ripristinare il tutto quando lo script ha terminato il suo lavoro.

Lo script mail2topwordslist.sh:
Vi siete mai chiesti quali sono le parole più ricorrenti nei vostri scambi epistolari? Se la risposta è affermativa, il primo dei quattro esempi di interazione Apple Mail / Bash che voglio mostrarvi vi verrà molto comodo.
Leggi il seguito di questo post »


[IT] Bash: come effettuare la scansione antivirus di una cartella automaticamente su Linux

19/07/2010

Mettiamo caso che siate responsabili di una rete aziendale con diciotto client Windows e vogliate dotarli di un server, che tra gli altri servizi, offra anche una cartella condivisa e centralizzata su cui tutti i dipendenti possano leggere e scrivere files, una cartella che funga da metodo semplice e veloce per scambiarsi i files e che ponga fine alla primitiva abitudine di mandarsi i files via email.

Mettiamo caso che tra i diciotto dipendenti di cui sopra, ce ne siano soltanto due o tre capaci di mantenere il proprio computer pulito da virus e malware, mentre gli altri lottano ogni giorno con finestre di avviso di Avast, pennette infette e figli di trojan vari, per cui sarebbe questione di un attimo infettare tutta la Rete se i computer si vedessero tra loro.

Beh.. in una situazione del genere, se foste il sys-admin / unico responsabile IT di questa azienda/ente/ufficio, cosa fareste? Cosa fareste voi non lo so, ma posso raccontarvi cosa ho fatto io.

Una volta messo sù un server Linux [1] ed una volta configurata una simpatica condivisione Samba dal nome a dir poco fantasioso di /home/SCAMBIO, sì è già raggiunto un buon livello di sicurezza, visto che in una Rete di client Windows un server Linux già di per sè funge da pit-stop per qualsiasi infezione virale studiata per diffondersi automaticamente sulla rete locale.

Ma cosa succederebbe se un impiegato passasse un file eseguibile infetto ad un altro impiegato tramite SCAMBIO, e se quest’ultimo ci cliccasse sopra due volte? BOOM!, esatto.
Leggi il seguito di questo post »