Mit Rubin 1.9.3p0Rubin 1.9.3 - Net :: IMAP-Liste und Status Methoden Antwort sehr langsam
Unten ist mein Ruby-Skript anzuzeigen, von meinem Google Mail-Konto, alle Namen Ordner und der Nachrichten zählen in jeder Mailbox.
Ruby-Script
ENV['SSL_CERT_FILE']='/etc/ssl/certs/cacert.pem'
begin_ = Time.now
require 'net/imap'
server='imap.gmail.com'
port = 993
username = '<MY-GMAIL-USER-ID>'
password = '<MY-PASSWORD>'
imap = Net::IMAP.new(server,port,true)
imap.login(username, password)
list = imap.list("", "*")
puts "Gathering Data"
folders_count_hash = Hash[ list.map do |a|
[a.name, imap.status(a.name, ["MESSAGES"])["MESSAGES"]] unless a.name == "[Gmail]"
end ]
total_time = Time.now - begin_
puts "Gathered Data"
puts "Total Folders :#{folders_count_hash.size}"
puts "RUNTIME: #{total_time}"
folders_count_hash.each do |name, count|
puts "#{name} (#{count})"
end
imap.logout()
imap.disconnect()
Ausgabe des obigen Skript:
Gathering Data
Gathered Data
Total Folders :193
RUNTIME: 189.38250329
Wie aus der Laufzeitwert der Ausgabe zu sehen ist es 3 Minuten nahm die Daten zu sammeln.
Ich muss verstehen, was Grund hinter solch langsamem Verhalten ist. Liegt es an so vielen Ordnern in meinem Konto oder an der Netzwerkgeschwindigkeit oder am Ende von GMail, dass die Antwort zurückgegeben wird?
Kann diese Verzögerung reduziert werden? Wenn ja, wie kann ich das gleiche erreichen?
Danke,
Jignesh
ein sehr ähnliches Problem haben ... – sethvargo
Try telnet (openssl für gmail) openssl s_client -connect imap.gmail.com:993 x anmelden x Liste "" "*" x logout –