Per Bzzers, il social network che abbiamo messo online alcuni giorni fa è stato necessario creare un modulo per l’invio di inviti agli amici prendendo automaticamente la lista dei contatti da GMail. Ho installato la gemma gmailer 0.1.7 e tutto funzionava in development, ma sul server in produzione ottenevo il seguente errore:
1 /usr/lib/ruby/1.8/net/protocol.rb:133:in `sysread': Connection reset by peer (Errno::ECONNRESET)
2 from /usr/lib/ruby/1.8/net/protocol.rb:133:in `rbuf_fill'
3 from /usr/lib/ruby/1.8/timeout.rb:56:in `timeout'
4 from /usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
5 from /usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
6 from /usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
7 from /usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
8 from /usr/lib/ruby/1.8/net/http.rb:2017:in `read_status_line'
9 from /usr/lib/ruby/1.8/net/http.rb:2006:in `read_new'
10 from /usr/lib/ruby/1.8/net/http.rb:1047:in `request'
11 from /usr/lib/ruby/1.8/net/http.rb:1034:in `request'
12 from /usr/lib/ruby/1.8/net/http.rb:543:in `start'
13 from /usr/lib/ruby/1.8/net/http.rb:1032:in `request'
14 from /usr/lib/ruby/1.8/net/http.rb:769:in `get'
15 from ./script/gm:7
Dopo vari controlli e prove ho capito che il problema era nel pacchetto Debian “libopenssl-ruby1.8 “. Una volta aggiornato alla versione 1.8.5-4 tutto è filato liscio senza alcun problema…
Puoi inviare un commento, o fare un trackback dal tuo sito.
Ciao a tutti, intanto complimenti per il blog mi è stato molto utile
Ho un problema simile al suddetto:
/usr/lib/ruby/gems/1.8/gems/rails-1.2.1/lib/commands/runner.rb:47: /usr/lib/ruby/1.8/net/protocol.rb:133:in
sysread': end of file reached (EOFError)rbuffill’from /usr/lib/ruby/1.8/net/protocol.rb:133:in
from /usr/lib/ruby/1.8/timeout.rb:56:in
timeout'timeout’from /usr/lib/ruby/1.8/timeout.rb:76:in
from /usr/lib/ruby/1.8/net/protocol.rb:132:in
rbuf_fill'readuntil’from /usr/lib/ruby/1.8/net/protocol.rb:116:in
from /usr/lib/ruby/1.8/net/protocol.rb:126:in
readline'recvresponse’from /usr/lib/ruby/1.8/net/smtp.rb:664:in
from /usr/lib/ruby/1.8/net/smtp.rb:396:in
do_start'gemoriginalrequire’... 11 levels...
from /usr/lib/ruby/gems/1.8/gems/rails-1.2.1/lib/commands/runner.rb:47
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
from /usr/lib/ruby/siteruby/1.8/rubygems/customrequire.rb:27:in `require’
from /var/www/thi.relactions.com/html/rails/script/runner:3
il sistema operativo è linux centos.
Potrebbere essere lo stesso problema secondo voi?
grazie, saluti
Ciao,
mi sa che è un problema di firewall.
saluti
Ok! Nel caso in cui non avessi risolto facci sapere!
Il problema è stato risolto ma non mi hanno messo al corrente di cosa l’ha generato. E’ stato escluso che si trattasse di firewall, quindi credo che sia stato qualche pacchetto aggiornato lunedi scorso… sapete per caso se aggiornando python viene installata qualche dipendenza particolare che potrebbe aver generato questo problema?
grazie ancora
ciao
Salve,
scusate la domanda forse posta in modo errata ma ho un problema con la
gemma gmailer 0.2.1
Utilizzo gmailer per accedere alla mia casella di posta gmail che
attualmente ha 4 pagine.
il codice per connettermi:
GMailer.connect(nomeutente,password) do |g|
g.messages(:standard=>’Inbox’,:read => false).each {|m| …….}
Ho provato in qualsiasi maniera utilizzando anche :pos => come attributo
ma:
a) non riesco a vedere il numero totale di pagine della mia casella di
posta;
b) riesco a vedere solo le e-mail della prima pagina (es 50);
c) riesco a scaricare SOLO le e-mail della prima pagina.
Non capisco come vedere e scaricare le e-mail a pagina 2,3,4…
Avete qualche idea/soluzione da consigliarmi?
Grazie infinite
Ciao Franz,
vediamo se riesco a risponderti a tutto… L’help della gemma non è molto ben fatto e bisogna provare un po’ a casaccio…
Allora, con il comando
riesci a vedere il numero totale di mail all’interno della cartella Inbox. A questo punto utilizzando il parametro pos riesci a scorrere i messaggi… Tieni presente che pos = 0 è il primo messaggio, pos = 1 è il secondo e così via. Quindi per leggere la pagina 2, se hai 50 messaggi per pagina devi scrivere:
Per capire il numero di messaggi per pagina fai un ciclo sui messaggi che ricevi con pos = 0
Spero di aver risolto i tuoi dubbi… altrimenti dimmelo che cerco di spiegartelo meglio.
Con questo metodo(che hai postato tu):
g.messages(:standard=>’Inbox’).each{|m| m}.size
vedi solo la prima pagina.
Credo che non resti che fare
@x = g.messages(:standard=>’Inbox’).total
cosi’ trovo tutte le mail nella casella.
poi posso fare un ciclo per ogni mail da 1 a total ovvero @x…
Credi ci sia una soluzione migliore?
Ciao Matte,
Concludo dicendo che questa gemma( a mio parere )è veramente implementata male.
Sono riuscito (come ti dicevo ieri alle 19,43) a scaricare tutte le mail ma è comunque un’odissea perchè in internet non si trova documentazione se non le solite 2 pagine.
Quindi vorrei sapere da te, se sei riuscito a scaricare gli allegati ( io non riesco in nessun modo) e soprattutto come riesci a leggere il body di un messaggio.
Faccio
GMailer.connect(nomeutente,password) do |g|
g.messages(:standard=>’Inbox’,:pos=>@counter).each{|m|
m.body #non funziona
m.title #non funziona
m.attachment #non riesco a capire come scaricare su pc gli eventuali allegati
}
Promettendoti che è l’ultima domanda, ti
ringrazio per la pazienza.
Saluti
Ciao Franz,
per quanto riguarda la lettura di un messaggio credo tu debba procedere in questo modo, utilizzando each_msg invece che each:
Per quanto riguarda gli attachment puoi utilizzare il metodo attachment per avere un array con il nome di tutti gli allegati (utilizza each e non each_msg per il metodo attachment). Ho provato un secondo, ma sembra dare alcuni problemi… In ogni caso va un po’ adoperato io sinceramente la gemma non l’ho mai utilizzata per i messaggi, ma solo per i contatti.
Comunque puoi leggere il README e vedrai che per scaricare un attachment puoi utilizzare:
dopo aver reperito dal messaggio tutti gli argomenti da passare alla funzione. Guarda un po’ ce la dovresti fare con un po’ di tentativi. Casomai guarda nella guida per ogni oggetto i metodi disponibili e alcuni degli esempi fatti.