net/imapでGMailのメールを取得
自動でfollowするように、GMailに届いたfollow通知からユーザ名を取り出してみる。IMAPでやってみた版。
参考:katoy: cocolog: ruby で gmail (imap) にアクセスする練習
require 'net/imap' followers = [] username = "hoge" password = "hogehoge" port = 993 usessl = true begin imap = Net::IMAP.new("imap.gmail.com", port, usessl) p imap.greeting imap.login(username, password) imap.examine("inbox") imap.fetch(1..-1, "ENVELOPE").each do |f| messageNo = f.seqno subject = f.attr["ENVELOPE"].subject to_mailbox = f.attr["ENVELOPE"].to[0].mailbox if to_mailbox == "hoge+bot" && # To:がhoge+bot@gmail.comのものを取り出す /is now following you on Twitter/ =~ subject imap.fetch(messageNo, "RFC822").each do |m| # ユーザ名を得る if /http:\/\/twitter\.com\/(\w+)/ =~ m.attr["RFC822"] p $1 followers << $1 end end end end followers.each { |u| follow(u) } p "success" rescue p "failed" end
Leave a Reply