サーバー到着日時表示のタイムゾーン考慮No.40366
mogphy さん 11/04/20 13:42
 
たびたび失礼します。

「メール一覧」で、「サーバー到着日付/時刻(Receivedヘッダ)」をONにして
いるのですが、システムのタイムゾーンを変更しても、時刻表示に反映されない
ように思います。
お手数ですが一度確認のうえ、ソフトの不具合でしたら修正いただけませんか?

ちなみに「Dateヘッダ(メールの作成日付/時刻)」はタイムゾーン変更後、
秀丸メールを再起動するとちゃんと表示に反映されます。

よろしくお願いします。

[ ]
RE:40366 サーバー到着日時表示のタイムゾNo.40367
秀まるお2 さん 11/04/20 15:14
 
 サーバー到着日付/時刻についてはタイムゾーンの修正はやってないですが…。

 手抜きといえば手抜きなんですが、まぁサーバー上ではそういう時刻だったと
いう意味ととらえてくれればそれはそれで間違ってる訳でもないかなぁというの
があって、そういう仕様にしてしまいました。

 他のメールソフトでもReceived:ヘッダの時刻をメール一覧に出してくれるよ
うな物が無かったので、まぁこれはこれでこういう仕様でも問題ないんじゃない
かと思っていましたけども、どうなんでしょうか。

 あと、実は技術的に、タイムゾーン対応させるのが難しいというのがあります。

 元々は、サーバー到着日付/時刻をメール一覧に表示する機能はありませんで
した。メール一覧を表示する用のデータの中にもそれ用の領域は用意してありま
せんでした。ですが、どうしてもこれを表示出来るようにして欲しいという要望
が多々ありまして、それでいろいろ考えたあげく、「メールを送受信した日付/
時刻」を覚えておく用の領域を、サーバー到着日付/時刻の表示用にに使ってし
まうことで、なんとかこの機能が実現出来るようにしました。

 そういう歴史的な背景があって、タイムゾーンについての処理は入れませんで
した。

 どうしてもタイムゾーン対応してくれないとダメだ、大変困る、ということで
したら、ソースコードの見直しなどして直す方策を考えてみます。

[ ]
RE:40367 サーバー到着日時表示のタイムゾNo.40368
秀まるお2 さん 11/04/20 15:29
 
 っとお返事した所ですみませんが、ソースコードを見直してみたら、それなり
にタイムゾーンを考慮する処理はやっていました。

 ただ、その処理が、メール一覧のキャッシュを作成する処理の中ということで
…、つまり、メールを受信してフォルダにメールが出現する、その瞬間のタイム
ゾーンが何か、というような処理になっていました。

 それで、とりあえずですが、パソコンのタイムゾーンを変更したら、「編集・
フォルダ毎の処理・メール一覧の作成し直し」を実行していただくと、そのタイ
ミングでのタイムゾーンにて正しい日付/時刻が表示されるようになります。

 それでどうでしょ?


 秀丸メール側でなんとかもっとエレガントに対処するとしたら、例えば秀丸
メール起動時にタイムゾーンが前回から変更されていたら、メール一覧の作成し
直しを全部自動でやるようにするとかって作戦があるかなぁと思います。

[ ]
RE:40368 サーバー到着日時表示のタイムゾNo.40369
mogphy さん 11/04/20 15:54
 
ありがとうございます。その方法で無事修正できました。
海外滞在中に受信したメールの日時表示が、帰国後も
現地の時刻のままで困っていました。

[ ]
RE:40369 サーバー到着日時表示のタイムゾNo.40370
mogphy さん 11/04/20 16:04
 
…ひととおり試してみたら、送信済みメールについては、
「編集・フォルダ毎の処理・メール一覧の作成し直し」を実行しても
変化なしでした。
送信済みメールについては諦めるしかないのでしょうか?

[ ]
RE:40370 サーバー到着日時表示のタイムゾNo.40371
秀まるお2 さん 11/04/20 16:54
 
 送信系メールだとReceived:ヘッダが無いので、「サーバー到着日付/時刻」に
は、実は送信したその瞬間の日付/時刻が表示される形になります。

 これは、実はメール用ファイルの中に、

   t:YYYYMMDDhhmmssmm

 のような形で記録されてる時刻ということになりまして、これはタイムゾーン
の補正はされずにそのまま表示されます。

 これを直すとしたら、マクロを使えば出来ることは出来ます。

 マクロの例を今から作ってみます。少々お待ちください。

[ ]
RE:40371 サーバー到着日時表示のタイムゾNo.40372
秀まるお2 さん 11/04/20 17:17
 
 マクロを作ってみましたが、もっといい方法がありました。

 送信済みメールを選択して、「編集・メールのプロパティ...」コマンドを実
行します。そこの一番下にある

 「送受信日付/時刻をDate:ヘッダと同じ値に書き換える」

 があるのでそれをONにしてOKします。

 そうすると、Date:ヘッダと同じに書き換わります。

 送信した時間とは少しずれる形にはなってしまいますが、これが一番お手軽で
いいんじないかと思います。複数のメールを選択して実行すれば、すべてのメー
ルが一気に変更出来て便利です。



 もしもマクロでやるとしたら、選択してるメールの送受信日付/時刻を+17また
は-17時間ずらすようなマクロとなりまして、例としては以下のようになります。

 複数のメールを選択して実行すれば全部まとめて変更します。

    menu "選択してるメールの送受信日付を変更します",
        "アメリカから日本 (17時間プラス)",
        "日本からアメリカ (17時間マイナス)";
    if( result == 2 ) {
        $diff = "+0.17";
    } else if( result == 3 ) {
        $diff = "-0.17";
    } else {
        message "変更しないで終了します。";
        endmacro;
    }

    loaddll "tkinfo.dll";

    #n = dllfunc("LockSelection");
    while(1) {
        #n = dllfunc("EnumSelection", 1);
        if( #n == 0 ) {
            break;
        }
        $s = dllfuncstr("GetMailTransmitDate");
        $millisec = rightstr($s, 3 );
        $s = dllfuncstr("ShiftDate", $s, $diff);
        $s = dllfuncstr("FormatDate", $s, "YYYY/MM/DD hh:mm:ss")
                      + "." + $millisec;
        #n = dllfunc("SetMailTransmitDate", $s );
    }
    #n = dllfunc("UnlockSelection", 1);

[ ]
RE:40372 サーバー到着日時表示のタイムゾNo.40375
mogphy さん 11/04/21 23:38
 
アドバイスありがとうございます。

> 送信済みメールを選択して、「編集・メールのプロパティ...」コマンドを実
>行します。そこの一番下にある
>
> 「送受信日付/時刻をDate:ヘッダと同じ値に書き換える」
>
> があるのでそれをONにしてOKします。

これを試そうとしたのですが、「送受信日付/時刻をDate:ヘッダと同じ値に
書き換える」がグレー表示になっていてONにできませんでした。

どのようにしたらこのオプションを有効にできますか?

[ ]
RE:40375 サーバー到着日時表示のタイムゾNo.40376
秀まるお2 さん 11/04/22 08:53
 
 すみません。メール一覧に表示する項目の「サーバー到着日付/時刻」がONに
なっていると、送受信日付/時刻の情報書き換えは出来ない仕組みになってしま
ってました。

 この場合は、すみませんが以下の操作で対応お願いします。

 1.「全般的な設定・メール一覧」の「メール一覧への表示項目、並び順」の
   「メールを送受信した日付/時刻」をONにする。
   (そうすると自動的に「サーバー到着日付/時刻」はOFFになりますが、
    それで合ってます)

 2.その状態で、送信済みメールをすべて選択して送受信日付/時刻の書き
   換えを実行する。

 3.書き換えが終わったら、もう一度「全般的な設定・メール一覧」を実行し
   て、「サーバー到着日付/時刻」のチェックをONにする。

 です。


[ ]