青木です。
すみません、見落してました。

  In mail "[ruby-list:39662] Re: [TMail]UNIXMboxでReply-Toがない場合"
    Ataru Nakata <anakata / vector.co.jp> wrote:

> 中田@ベクターです。
> 
> ついでですが、再構築されたメールボックスのunix fromの行において
> 日付書式が変わってしまいます。
> この部分はDate:フィールドなどは違って
>       sprintf '%s %s %d %02d:%02d:%02d %d',
>               WDAY[tm.wday], MONTH[tm.month], tm.mday, 
>               tm.hour, tm.min, tm.sec, tm.year
> の書式となるようです。
> 再構築したメールボックスがプログラムによって食えなくなって焦り
> ました(^^;

うう、重ね重ね申し訳ない。添付のパッチを試してください。
-------------------------------------------------------------------
青木峰郎

--- tmail/mailbox.rb	20 Feb 2004 00:35:01 -0000	1.7
+++ tmail/mailbox.rb	23 May 2004 12:28:24 -0000	1.8
@@ -127,7 +127,7 @@
     end
 
     def UNIXMbox.new(fname, tmpdir = nil, readonly = false)
-      tmpdir = ENV['TEMP'] || ENV['TMP'] || '/tmp'
+      tmpdir ||= (ENV['TEMP'] || ENV['TMP'] || '/tmp')
       newobj(fname, "#{tmpdir}/ruby_tmail_#{$$}_#{rand()}", readonly, false)
     end
 
@@ -139,6 +139,7 @@
       @filename = fname
       @readonly = readonly
       @closed = false
+      @updated = nil
 
       Dir.mkdir mhdir
       @real = MhMailbox.new(mhdir)
@@ -170,8 +171,8 @@
 
     # make _From line
     def UNIXMbox.create_from_line(port)
-      sprintf 'From %s %s',
-              fromaddr(port), time2str(File.mtime(port.filename))
+      sprintf('From %s %s',
+              fromaddr(port), unixmbox_time(File.mtime(port.filename)))
     end
 
     def UNIXMbox.fromaddr(port)
@@ -184,13 +185,13 @@
 
     def close
       return if @closed
-
+      f = @finalizer
       ObjectSpace.undefine_finalizer self
-      @finalizer.call
       @finalizer = nil
       @real = nil
       @closed = true
       @updated = nil
+      f.call
     end
 
     def each_port(&block)
--- tmail/textutils.rb	12 May 2004 12:53:49 -0000	1.7
+++ tmail/textutils.rb	23 May 2004 12:28:24 -0000	1.8
@@ -151,6 +151,11 @@
               *(offset / 60).divmod(60)
     end
 
+    def unixmbox_time(t)
+      sprintf('%s %s %d %02d:%02d:%02d %d',
+          WDAY[t.wday], MONTH[t.month], t.mday, t.hour, t.min, t.sec, t.year)
+    end
+
     MESSAGE_ID = /<[^\@>]+\@[^>\@]+>/
 
     def message_id?(str)