Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 26 di 32
  • livello principiante
Indice lezioni

Gmail

Utilizzare il servizio di Google per la gestione della posta elettronica delle nostre applicazioni
Utilizzare il servizio di Google per la gestione della posta elettronica delle nostre applicazioni
Link copiato negli appunti

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...nnCiaon",
        :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.

Ti consigliamo anche