[#20475] Wrapping Regexp in C++/Windows — OZAWA Sakuro <crouton@...>

さくです。

15 messages 2000/02/03

[#20534] ftpmirror-1.2.2 で @homepage へ up 不可 — Hirokazu Kiuchi <kiuchi@...>

はじめまして、きうちです。

12 messages 2000/02/07

[#20554] エスケープされていないものだけを置換 — Ayanosuke <aya@...>

 館林と申します。

35 messages 2000/02/07
[#20563] Re: エスケープされていないものだけを置換 — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/02/07

なひです.

[#20598] — "okaukio+mls" <jtz4046@...6.mnx.ne.jp>

ruby-list@netlab.co.jp のみなさん こんにちは。

126 messages 2000/02/08
[#20600] Re: — "Y Kataoka" <kataoka@...> 2000/02/09

片岡と申します。

[#20620] Re: — "okaukio+mls" <jtz4046@...6.mnx.ne.jp> 2000/02/10

おかゆきおです。

[#20623] Re: How to run ruby — Masaki Suketa<CQN02273@...> 2000/02/11

助田です.最初からこのツリーちゃんと読んでなかったんですが...

[#20630] Re: How to run ruby — "okaukio+mls" <jtz4046@...6.mnx.ne.jp> 2000/02/11

おかゆきおです。

[#20633] Re: How to run ruby — Masaki Suketa<CQN02273@...> 2000/02/12

助田です.ちょっと長いです.

[#20640] Re: How to run ruby — "okaukio+mls" <jtz4046@...6.mnx.ne.jp> 2000/02/12

おかゆきおです。

[#20653] Re: How to run ruby — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/02/13

[#20655] Re: How to run ruby — OZAWA Sakuro <crouton@...> 2000/02/13

In article <38A6419D15E.469A.BXQ04723@nifty.ne.jp>,

[#20657] Re: How to run ruby — Fumitake Taniguchi <whom@...3.so-net.ne.jp> 2000/02/13

In <200002130938.SAA17120@rose.duelists.org>,

[#20658] Re: How to run ruby — OZAWA Sakuro <crouton@...> 2000/02/13

In article <200002131054.TAA09555@mail.fb3.so-net.ne.jp>,

[#20661] Re: How to run ruby — nobu.nakada@... 2000/02/13

なかだです。

[#20677] Re: How to run ruby — "Hideaki Takata" <hideakit@...3.dion.ne.jp> 2000/02/13

たかた@久しぶりの投稿です。

[#20691] Re: How to run ruby — "Hideaki Takata" <hideakit@...3.dion.ne.jp> 2000/02/14

たかたです

[#20736] Re: How to run ruby — "Hideaki Takata" <hideakit@...3.dion.ne.jp> 2000/02/15

たかたです

[#20746] Re: How to run ruby — "Hideaki Takata" <hideakit@...3.dion.ne.jp> 2000/02/15

たかたです

[#20765] Re: rbsh — rubikitch <rubikitch@...> 2000/02/16

From: "Hideaki Takata" <hideakit@d3.dion.ne.jp>

[#20783] Re: rbsh — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/02/17

[#20777] Re: Where is http-access.rb? — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/02/16

なひです.

[#20792] Re: Where is http-access.rb? — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/02/17

なひです.

[#20645] Re: How to run ruby — WATANABE Hirofumi <eban@...> 2000/02/12

わたなべです.

[#20625] druby で 3 つのプロセス間でオブジェクトをやり取りする — 堀川 久 <vzw00011@...>

 こんにちは。

12 messages 2000/02/11
[#20628] Re: druby で 3 つのプロセス間でオブジェクトをやり取りする — Masatoshi SEKI <m_seki@...> 2000/02/11

[#20638] Re: druby で 3 つのプロセス間でオブジェクトをやり取りする — 堀川 久 <vzw00011@...> 2000/02/12

 こんにちは。

[#20722] opttest.rb of optparse-0.6 — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>

Toshです。

15 messages 2000/02/15

[#20737] Ruby/Gtk の CList にパッチ — YASUI Kentarow <kenyasui@...>

安井です。

14 messages 2000/02/15
[#20950] Re: Ruby/Gtk の CList にパッチ — Hiroshi IGARASHI <igarashi@...> 2000/02/22

いがらしです。返答が遅くなりすみません。

[#20955] Re: Ruby/Gtk の CList にパッチ — matz@... (Yukihiro Matsumoto) 2000/02/22

まつもと ゆきひろです

[#20821] method object — thitoshi@... (TAKAHASHI Hitoshi)

45 messages 2000/02/18
[#20824] Re: method object — Masahiro Suzuki <msuzuki@...> 2000/02/18

こんにちは。鈴木@仕事中です。

[#20827] Re: method object — thitoshi@... (TAKAHASHI Hitoshi) 2000/02/18

[#20829] Re: method object — matz@... (Yukihiro Matsumoto) 2000/02/18

まつもと ゆきひろです

[#20832] Re: method object — thitoshi@... (TAKAHASHI Hitoshi) 2000/02/18

[#20885] Re: collect + find_all ==> select ? — "H.TAKEI" <takei.hideaki@...> 2000/02/21

武井です。

[#20923] CUI library available in Ruby — Hideto ISHIBASHI <s34204@...>

石橋秀仁です。

15 messages 2000/02/22

[#20944] Hash#update について — Fuyuhiko Maruyama (丸山冬彦) <fuyuhik8@...>

丸山@東工大と申します。

32 messages 2000/02/22
[#20948] Re: Hash#update について — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/02/22

[#20960] Re: Hash#update について — rubikitch <rubikitch@...> 2000/02/23

From: 中村暁史 Nakamura Akifumi <BXQ04723@nifty.ne.jp>

[#20976] Re: Hash#update について — Fuyuhiko Maruyama (丸山冬彦) <fuyuhik8@...> 2000/02/23

丸山です。

[#20977] Re: Hash#update について — matz@... (Yukihiro Matsumoto) 2000/02/23

まつもと ゆきひろです

[#20984] Re: Hash#update について — Fuyuhiko Maruyama (丸山冬彦) <fuyuhik8@...> 2000/02/23

丸山です。

[#20985] Re: Hash#update について — matz@... (Yukihiro Matsumoto) 2000/02/23

まつもと ゆきひろです

[#20959] Ruby/GTK tの動かし方 — 中村暁史 Nakamura Akifumi <BXQ04723@...>

18 messages 2000/02/23
[#21011] Re: Ruby/GTK tの動かし方 — Yasushi Abe <yasushi@...> 2000/02/24

こんにちわ、阿部です。

[#20965] cgi.rb BUG? — rubikitch <rubikitch@...>

るびきちです。

33 messages 2000/02/23
[#20978] Re: cgi.rb BUG? — nobu.nakada@... 2000/02/23

なかだです。

[#21023] Re: cgi.rb BUG? — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp> 2000/02/24

nobu.nakada@nifty.ne.jp wrote:

[#21025] Re: cgi.rb BUG? — nobu.nakada@... 2000/02/24

なかだです。

[#21052] tempfile.rb BUG — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp> 2000/02/26

nobu.nakada@nifty.ne.jp wrote:

[#20992] GPIB driver その後 — Makoto Tagusari <mtag@...2.so-net.ne.jp>

皆さん今晩は、田鎖です。

15 messages 2000/02/23
[#21012] Critical Block (Re: GPIB driver その後) — Hideto ISHIBASHI <s34204@...> 2000/02/24

石橋秀仁です。

[#21028] CGI.rb のドキュメント探してます — Takumi Nakamura <chapuni@...>

 はじめまして。福岡在住の中村と申します。

16 messages 2000/02/25
[#21054] Re: CGI.rb のドキュメント探してます — 堀川 久 <vzw00011@...> 2000/02/26

 こんにちは。

[#21093] RD with URL — rubikitch <rubikitch@...>

るびきちです。

25 messages 2000/02/29
[#21095] Re: RD with URL — nobu.nakada@... 2000/02/29

なかだです。

[#21098] Re: RD with URL — rubikitch <rubikitch@...> 2000/02/29

From: nobu.nakada@nifty.ne.jp

[#21100] Re: RD with URL — nobu.nakada@... 2000/02/29

なかだです。

[#21101] Re: RD with URL — rubikitch <rubikitch@...> 2000/02/29

From: nobu.nakada@nifty.ne.jp

[#21103] Re: RD with URL — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/02/29

Toshです。

[#21105] Re: RD with URL — rubikitch <rubikitch@...> 2000/02/29

From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>

[#21108] Re: RD with URL — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/02/29

Toshです。

[#21110] rubyman ? (Re: RD with URL) — Koji Arai <JCA02266@...> 2000/02/29

新井です。

[#21111] Re: rubyman ? (Re: RD with URL) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/02/29

Toshです。

[ruby-list:21087] tiny fetchmail

From: Masatoshi SEKI <m_seki@...>
Date: 2000-02-28 15:09:02 UTC
List: ruby-list #21087
咳といいます。

今日の午前中、急に必要になって
定期的にPOPしてMain/inboxに保存する
fetchmailもどきを書きました。

# が、午後になったらすぐ不要になってしまいました。
せっかくなので投稿します。

お目汚しにどうぞ。

% ruby script.rb <HOST> <USER>

とすると一分おきにPOPしてinboxに保存します。
引数検査の部分をちゃんと作らないと実用にならないかも。


#!/usr/local/bin/ruby

require 'net/pop'

class FetchMailError<RuntimeError; end

class POPServer
  def initialize(host, user, pass=nil)
    @host = host
    @user = user
    if pass
      open_with_passwd(pass)
    else
      open
    end
    raise FatchMailError unless @pop
  end

  def close
    @pop.finish if @pop
    @pop = nil
  end

  def reopen
    return if @pop
    open_with_passwd(@pass)
  end

  def open_with_passwd(pass)
    @pop = Net::POP3Session.new(@host)
    @pop.start(@user, pass)
    @pass = pass
  end

  def open(count = 3)
    begin
      @pop = Net::POP3Session.new(@host)
      @pass = passwd()
      @pop.start(@user, @pass)
    rescue
      if count > 0
	count -= 1
	retry
      else
	nil
      end
    end
  end

  def each
    @pop.each do |mail|
      yield mail
    end
  end

  def passwd
    system "stty -echo"
    print "Password: "
    pw = gets.chomp
    system "stty echo"
    puts
    pw
  end
end

class Inbox
  def initialize(path='~/Mail/inbox')
    @path = File.expand_path(path)
  end

  def tail
    f = -1
    Dir.foreach(@path) do |name|
      if name =~ /^\d+$/
	n = name.to_i
	f = (f > n) ? f : n
      end
    end
    f
  end

  def temp(count = 3)
    begin
      temppath = @path + "/poptemp#{$$}-#{count}"
      if File.exist?(temppath)
	count -= 1
	if count > 0
	  retry
	else
	  nil
	end
      end
      f = File.open(temppath, "w")
      [temppath, f]
    end
  end

  def summary(str)
    
    if str =~ /\nFrom: (.*?)\n/
      puts "#{Time.now} From: #{$1}"
    end
  end

  def regist(mail, count = 8)
    str = mail.all()
    str.gsub!(/\r/, '')
    summary(str)
    temppath, f = temp()
    f.write(str)
    f.close()
    num = tail() + 1
    begin
      new_name = @path + "/#{num}"
      File.link(temppath, new_name)
      File.unlink(temppath)
      mail.delete!
    rescue Errno::EEXIST
      if count > 0
	num += 1
	count -= 1
	retry
      else
	nil
      end
    end
  end
end

class FetchMail
  def initialize(pop, inbox, interval=5)
    @pop = pop
    @inbox = inbox
    @interval= interval * 60
  end

  def fetch
    @pop.reopen
    @pop.each do |mail|
      @inbox.regist(mail)
    end
    @pop.close
  end

  def mainloop
    loop do
      fetch
      sleep(@interval)
    end
  end
end

if __FILE__ == $0
  inbox = Inbox.new
  pop = POPServer.new(ARGV.shift, ARGV.shift)
  begin
    fm = FetchMail.new(pop, inbox, 1)
    fm.mainloop
  ensure 
    pop.close if pop
  end
end


In This Thread

Prev Next