· 8 years ago · Mar 01, 2018, 12:54 PM
1#!/usr/bin/env ruby
2
3require 'net/https'
4require 'rexml/document'
5require 'time'
6
7@username = "" # (without @gmail.com)
8@password = ""
9
10http = Net::HTTP.new('mail.google.com', 443)
11http.use_ssl = true
12http.verify_mode = OpenSSL::SSL::VERIFY_PEER
13http.ca_path = '/etc/ssl/certs'
14
15request = Net::HTTP::Get.new('/mail/feed/atom')
16request.basic_auth(@username, @password)
17
18doc = REXML::Document.new(http.request(request).body)
19
20begin
21 @messages = doc.elements.to_a("//entry").map do |e|
22 {:subject => e.elements["title"].text,
23 :summary => e.elements["summary"].text,
24 :from => e.elements.to_a["author"].map do |a|
25 {:name => a.elements["name"].text,
26 :email => a.elements["email"].text}
27 end[0],
28 :date => Time.xmlschema(e.elements["issued"].text),
29 :link => e.elements["link"].attributes["href"]}
30 end
31rescue
32end
33@count = doc.root.elements["fullcount"].text.to_i
34
35puts @count