ruby で gmail (imap) にアクセスする練習
ruby で gmail (imap) にアクセスする練習をしてみた。
この作業をしていて gmail は
http://mail.google.com/mail/feed/atom
で RSS チェックできることにも いまさらながら 気がついた。
以下のスクリプトの実行をするには、gem install tmail しておく必要があります。
$ cat gmaisubject.rb
# See http://mac-memo.blogspot.com/2008/01/rubygmail_30.html
# http://www.notwork.org/ipr/article/serial10.html
require 'rubygems'
require 'net/imap'
require 'tmail'
require 'cgi'
require 'yaml'
require 'kconv'
require 'pp'
@KCODE = "utf8"
config = YAML.load_file("config.yaml")
username = config["user"]
password = config["pass"]
port=993
usessl=true
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|
imap.fetch(1..2, "ENVELOPE").each do |f|
puts "=========================================================="
messageNo = f.seqno
date = f.attr["ENVELOPE"].date
from_name = f.attr["ENVELOPE"].from[0].name
subject = f.attr["ENVELOPE"].subject
subject = "" if subject == nil
print "#{messageNo}: #{date} #{from_name} #{Kconv.toutf8(subject)}\n"
imap.fetch(messageNo, "RFC822").each do |m|
mail = TMail::Mail.parse(m.attr["RFC822"])
body = NKF::nkf('--sjis', mail.body)
puts body.toutf8
end
end
imap.disconnect
$ ruby gmailsubject.rb
(実際の出力そのままではありません)
#<struct Net::IMAP::UntaggedResponse name="OK", data=#<struct Net::IMAP::ResponseText code=nil, text="Gimap ready for requests from 58.0.0.165 s38if458972rnb.0">, raw_data="* OK Gimap ready for requests from 58.0.0.165 s38if458972rnb.0¥r¥n">
==========================================================
1: Thu, 24 Nov 200* 23:08:35 -0800 (PST) =?ISO-2022-JP?B?R21haWwgGyRCJUEhPCVgGyhC?= Gmail へようこそ
Gmail へようこそ。 このたびは Gmail アカウントをご作成いただきありがとうございます。 Gmail は従来のウェブ
メールとはまったく異なるメール サービスです。 サービスのご利用にあたっては、次の情報をご参照ください。
==========================================================
2: Sat, 4 Mar 200* 01:44:56 -0800 (PST) mixi 変更メールアドレス
****** さん、こんにちは。
mixiからのお知らせです。以下のURLをクリックして登録内容の変更を完了させて
ください。
——————————————————————————
jruby ではなぜか動作しない、なぜ?
$ jruby gmailsubject.rb
/Users/kato/work/www/jruby-1.0.3/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:26 warning: already initialized constant VERSION
/Users/kato/work/www/jruby-1.0.3/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:26 warning: already initialized constant OPENSSL_VERSION
/Users/kato/work/www/jruby-1.0.3/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:26warning: already initialized constant OPENSSL_VERSION_NUMBER
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant DSS
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant DSS1
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant MD2
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant MD4
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant MD5
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant MDC2
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant RIPEMD160
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant SHA
/Users/kato/work/www/jruby-1.0.3/lib/ruby/gems/1.8/gems/jruby-openssl-0.1.1/lib/openssl/digest.rb:42 warning: already initialized constant SHA1
// このあと ずっと wait 状態になってしまう...
| 固定リンク
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/40337442
この記事へのトラックバック一覧です: ruby で gmail (imap) にアクセスする練習:
コメント