Dopo aver visto come sfruttare alcuni servizi offerti da Yahoo, cerchiamo di capire ora cosa offre Google agli sviluppatori Ruby. In questo capitolo vedremo il modo di gestire in Ruby due servizi molto diversi tra loro: il classico servizio webmail e un interessante modo per creare dei grafici online.
Uno dei principali servizi offerti da Google è sicuramente GMail. Vediamo come leggere e scrivere la posta utilizzando la libreria gmailer. Iniziamo col leggere i soggetti dei nuovi messaggi: bisogna aprire una connessione e poi iterare sui messaggi sul server.
require 'rubygems'
require 'gmailer'
name = 'YourUserName'
pwd = 'YourPassword'
gConn = GMailer.connect(:username=>name,:password=>pwd)
gConn.messages(:standard=>'all',:read=>false).each_msg do |msg|
puts "#{msg.sender}: #{msg.subject}"
end
Si noti il valore false di read nella chiamata a messages che sta proprio ad indicare che ci interessano solo i messaggi non letti. In alternativa avremmo potuto leggere tutti i messaggi e stampare solo quelli nuovi utilizzando il metodo new? su ogni email:
gConn.messages(:standard=>'all').each do |msg|
puts "#{msg.sender}: #{msg.subject}" if msg.new?
end
È possibile in questa fase anche leggere solo i messaggi etichettati da una specifica label passando a messages il parametro label:
g.messages(:label=>'db4o')
Ovviamente oltre al mittente e al soggetto è possibile accedere ad ogni parte del messaggio attraverso gli appositi metodi: body, snipped, labels, msgid, attachment, etc.
Inoltre il metodo original permette di accedere all'intero contenuto di header.
Per scrivere un messaggio dal nostro account GMail, va utilizzato il metodo send passandogli come argomenti tutti gli elementi dell'email:
sendmail = gConn.send(
:to => "root@example.com, admin@fake.net",
:cc => "user@example.com",
:subject => "Gmail con Ruby",
:body => "Questo È un test...\n\nCiao\n",
:files => "./list.tgz")
Per scrivere il testo dell'email in HTML occorre passare anche l'argomento :ishtml => 1.
GMailer permette anche di gestire la rubrica visualizzando i contatti, aggiungendone di nuovi o eliminandoli. Lo stesso vale per le etichette:
gConn.create_label('nome_etichetta')
gConn.rename_label('vecchio_nome', 'nuovo_nome')
gConn.delete_label('nome_etichetta')
Dove rispettivamente creiamo, rinominiamo e cancelliamo un etichetta. Una volta creata l'etichetta è possibile associarla ad un messaggio identificato dal suo ID:
gConn.apply_label(msgid, 'nome_etichetta') gConn.remove_label(msgid, 'nome_etichetta')
GMailer offre un utile metodo per modificare le preferenze, visualizzabili attraverso il metodo preference, del nostro account:
gConn.update_preference(
:max_page_size=>20,
:keyboard_shortcuts=>true,
:indicators=>true,
:display_language=>'it',
:signature=>'Home Page: http://example.com',
:snippets=>false,
:display_name=>'Tizio Incognito')
Vanno ricordate infine le funzionalità di archiviazione e di selezione dei messaggi e la gestione dello spam.
Duck Typing, tipizzazione per comportamentiRiconoscere un oggetto non dal tipo ma dai metodi che espone, quindi... |
Introduzione a RackImplemetare uno stack di middleware per gestire efficacemente... |
Le meravigliose novità di Rails 3La fusione con Merb, l'ottimizzazione del framework, l'introduzione... |
CouchDB e Rails: la gemma sul divanoFacciamo la conoscenza di CouchRest, una alternativa ad ActiveRecord... |
JRuby: Java e Ruby insiemeIntroduzione pratica alla piattaforma JRuby, per utilizzare classi... |
Guida ActiveSupportUna panoramica sulle funzionalità più importanti di ActiveSupport:... |
Guida Ruby On Rails 2Scoprire le novità di Ruby on Rails 2, memorizzare i dati con... |
Guida Ruby e il WebUn percorso alla scoperta delle potenzialità offerte da Ruby nella... |
Ogni mercoledì, direttamente nella tua e-mail: articoli, guide e tutorial su Ruby e Ruby on Rails .
Iscriviti alla newsletter