それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

GmailをRubyで読みだす。

Gmail引退です。GmailはUIが腐ったのでもうメインでは使えないと思います。そこで必要なメールはGmailからRubyでぱぱっと読みだして処理しちゃうことにした。

rubygmailを扱う。

gem install gmail

サンプル

INBOX(受信トレイ)を取得する

require 'rubygems'
require 'gmail'
gmail = Gmail.new(:plain, "takuya**@gmail.com", "**password**");
gmail.label(:INBOX).all

ラベルの一覧を取得する

gmail.labels.map
=> ["Amazon", "INBOX", "[Gmail]", "ゆにかねっと","NDL","図書", "保存済み", "[Gmail]/All Mail", "[Gmail]/Drafts", "[Gmail]/Important", "[Gmail]/Sent Mail", "[Gmail]/Starred", "[Gmail]/Trash"]

ラベルはIMAP経由でONものだけ

IMAP経由で見られるものだけが使える。

チェックが付いているものだけが見られる。

メールの本文を取り出す。

gmail.label(:INBOX) .all.first.message => Mail::Message
gmail.label(:INBOX) .all.first.body    => Mail::Body

ラベル中のメールを全て処理する。

gmail.label(:INBOX) .all.map{|e | e.body =~ /hogehoge/}

本文の処理はMailライブラリ。

Mailクラスの使い方は本家を参照。mikel/mail · GitHub

日本のRuby書籍でよく見かけるTMailとは違うので、一度目を通しておくといい。



これでGmailRubyで読みだす事ができる。あとは必要なメールをラベル単位でバックアップしちゃえばいいってことで。