2011年9月 6日

[mew-dist 29406] Re: Mew 6.4 release candidate 1

こんばんは。

Mew 6.4でも関係するかどうかわかりませんが、cmewで使用している
mailreadはRuby 1.9.2では含まれていません。

さらに、mailread.rbの中身を見るとメール全体を読み込んでいます。必要
なのはヘッダーだけなので以下のような自前の読み込み関数で置き換えて
みました。(Mew 6.3に対するパッチです。)


--
神戸 隆博 / Takahiro Kambe


--- bin/cmew.orig 2009-09-09 00:57:27.000000000 +0000
+++ bin/cmew
@@ -13,7 +13,31 @@ require 'sqlite3'
require 'time'
require 'fileutils'
require 'find'
-require 'mailread'
+
+################################################################
+##
+## mail_header
+##
+## Get header from mail message. If multiple header field
+## exists, last one will be used.
+##
+def mail_header(path)
+ @header = {}
+ value = nil
+ File.open(path) do |f|
+ while l = f.gets.chomp
+ next if /^From / =~ l
+ break if /^$/ =~ l
+ if /^\s+/ !~ l
+ (name, value) = l.split(/:\s+/, 2)
+ @header[name.downcase] = value
+ else
+ value << $'
+ end
+ end
+ end
+ return @header
+end

################################################################
##
@@ -159,7 +183,7 @@ def register(db, maildir, ignore_regex,
elsif st.file? and fpath =~ /\/[0-9]+(\.mew)?$/
next if File.dirname(fpath) == skipdir
next if last_mod > st.ctime.tv_sec
- m = Mail.new(fpath)
+ m = mail_header(fpath) rescue next
id = get_id(m)
parid = get_parid(m)
date = get_date(m)


投稿者 xml-rpc : 2011年9月 6日 20:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106011
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。