ヘッダのDate:についてNo.35378
銀ぎつね。 さん 09/01/16 16:52
 
お世話になっております。

インストールしてメールを読み込んだのですが、古いメールが最新の日付表示で一番
上に来ていて、おかしいなと思い色々調べてみたのですが、
ヘッダにDate:が入っておらず、↓のような状態で日付が入っているメールが結構あ
りました。

X-Apparently-To: xxxxxx@yahoo.co.jp via 203.216.249.213; Tue, 08 Jan 2008 0
7:09:52 +0900

Becky!では、送信日時の表示は空白のままですが、うまいこと届いた順番通りにメー
ルが表示されるようになっていました。

ヘッダを書き換えるか、メール一覧枠のDateの部分を書き換たら、元に戻せるなと思
い色々挑戦してみたのですが、わかりません。
教えて頂けないでしょうか??

[ ]
RE:35378 ヘッダのDate:についてNo.35381
秀まるお2 さん 09/01/16 17:33
 
 Date:ヘッダの無いメールに、X-Apparently-To:ヘッダから取得した日付/時刻
を元にしてDate:ヘッダを生成するって処理は、マクロを使えば出来ます。

 ちなみにX-Apparently-To:が無い場合はReceived:ヘッダから日付を取り出す
ようにした方がいいと思います。

 サンプルマクロを作るとこうなります。

    loaddll "tkinfo.dll";
    #count = dllfunc("SelectedMailCount");
    if( #count == 0 ) {
        endmacro;
    }
    #n = dllfunc("LockSelection");
    while(1) {
        #n = dllfunc("EnumSelection", 1);
        if( #n == 0 ) {
            break;
        }
        $s = dllfuncstr("CurrentHeader", "Date");
        if( $s == "" ) {
            $date = dllfuncstr("CurrentHeader", "X-Apparently-To");
            if( $date == "" ) {
                $date = dllfuncstr("CurrentHeader", "Received");
            }
            if( $date != "" ) {
                #x = strstr( $date, "; " );
                if( #x > 0 ) {
                    $date = midstr( $date, #x + 2, 999 );
                    #n = dllfunc("BeginEditMail");
                    #n = dllfunc("SetHeader", "Date", $date);
                    #n = dllfunc("SaveEditMail", 0, 0);
                }
            }
        }
    }
    #n = dllfunc("UnlockSelection", 1);

 このマクロを、対象のメールを1つまたは複数選択して実行すればいいです。
Date:ヘッダが既に付いてるメールも含めて全部選択してから実行してもうまく
動作します。

 ということでどうでしょ?

 それか、そもそもDate:ヘッダはあまり信用しないでメールの送受信日付か、
またはReceived:ヘッダの日付順でソートさせてしまう方がいいかもしれません。
「全般的な設定・メール一覧」の「メール一覧への表示項目、並び順」の中の
「メールを送受信した日付/時刻」か、または「サーバー到着日付/時刻」をONに
した上で、それの列でソートさせるといいかもしれないです。僕自身は送受信日
付順ソートを主に使ってます。

[ ]
RE:35381 ヘッダのDate:についてNo.35382
秀まるお2 さん 09/01/16 17:42
 
 ちなみに秀丸メールでも、Date:ヘッダが無いメールでも普通はうまくソート
されるような形にしています。というのはつまり、Date:ヘッダが無い場合は、
メールを受信した日付をDate:ヘッダの日付扱いするような処理をしているから
です。

 ただし、Becky!さんからインポートしたメールの場合だと、インポートした日
付が「メールを受信した日付」って扱いになってしまうので、結果として古い
メールが最新の所にソートされて出てきてしまうのだと思います。

[ ]
RE:35382 ヘッダのDate:についてNo.35389
銀ぎつね。 さん 09/01/17 19:33
 
お忙しい中、いつもお早いお返事ありがとうございます。

全て解決しました。
マニュアルやFAQがないので、ついつい質問してしまいます。
すぐ質問するのは心苦しいので、秀丸エディタと公式マニュアルを買おうと思います。

あと、yahoo!のウェブメールを元々使っていて、これからメーラーを使おうと思って
いた所だったので、Becky!も秀丸メールもyahoo!からインポートしました。
なのですが、Becky!の方はDateヘッダがないメールもうまいこと順番通りに並んでい
たので、気になりました。
一応報告しておきます。

重ね重ねありがとうございました。

[ ]