lunedì, ottobre 05, 2009

Controllare la posta in arrivo su GMail da riga di comando

Un' altra dimostrazione della potenza della riga di comando di Linux e degli strumenti che su di essa si appoggiano.
Con la stringa che segue (che usa curl) è possibile controllare quali sono i messaggi ancora da leggere nella nostra casella GMail. Basta sostituire username con il vostro nome utente. Ecco il comando: curl -u username --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;' Ricordare tutta 'sta roba non è semplicissimo, lo so, ma una volta copiata ed eseguita, basterà richiamarla dall' history così !curl o creare un alias.

11 commenti:

  1. Io consiglierei un alias piuttosto. Se si usa la notazione !curl si richiama l'ultimo commando dato a curl. Non sempre è l'effetto voluto specialmente se usiamo curl spesso.

    RispondiElimina
  2. Be' lo consiglio anche io l'alias :)
    Comunque hai ragione è sicuramente più sicuro del richiamo dall'history. Però non è banalissimo crearlo (escape a manetta), quindi forse il Ctrl + R o il "!" sono la soluzione più immediata.

    RispondiElimina
  3. sennò, bash script e poi lo si mette in /usr/bin

    RispondiElimina
  4. E' solo un giochino divertente, per far vedere quante e meravigliose cose si posson fare via shell... la mail continuo a leggerla via browser :)

    RispondiElimina
  5. Guardi non sà quanto mi è stato di aiuto! stavo cercando uno script per un server che mi andasse a polling su un account gmail per raccogliere l' intestatario e soggetto delle mail arrivate per poi smistarle(o qualcosa del genere) tramite sms e grazie al suo comado mi è stato semplicissimo!

    Grazie :)

    RispondiElimina
  6. Si figuri... potrebbe, volendo, anche darmi del tu... ;)

    RispondiElimina
  7. Come posso passare a curl la password in modo da non doverla inserire tutte le volte?

    RispondiElimina
  8. Giuseppe Patanèagosto 03, 2010 3:16 PM

    Ciao,
    se crei un file nella tua home di nome .netrc ed all'interno scrivi i dati nella forma

    machine host.domain.com login myself password secret
    Per google:
    machine mail.google.com login tualogin@gmail.com password tuapassword

    e poi modifichi il comando in:


    curl -n --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'

    Non ti verrà chiesto di inserire la password e funzionerà lo stesso.
    Occhio a proteggere il file .netrc:
    chmod 600 .netrc
    in modo che solo tu lo possa leggere e scrivere.

    RispondiElimina
  9. Grazie Giuseppe. Ottimo consiglio.

    RispondiElimina