送信時の「Date:」ヘッダについてNo.05671
とび さん 02/03/01 10:08
 
いつも愛用させていただいており、感謝しております。

既出かもしれませんが、以下、不都合がないようなら
対応をご検討いただければと思います。

未送信フォルダに保存したメールを「未送信メールの送信」で送信した場合、
「Date:」ヘッダは、保存した時の日時で送信されているようです。
これを、「未送信メールの送信」で送信処理行った日時にすることは難しいでしょう
か?

以上、よろしくご検討をお願いいたします。

[ ]
RE:05671 送信時の「Date:」ヘッダについてNo.05686
秀まるお2 さん 02/03/01 15:10
 
 これは以前にも指摘された件なんですが、一応、Date:はメールを作成した
日付にする方が適当、というか、そういうメールソフトが多いらしいというこ
とで、今の仕様でおちついています。

 しいて、Date:ヘッダを最新に更新したい場合には、一度「ファイル・草稿
に保存」としてから送信しなおす手があります。

 オプションを増やしてDate:ヘッダの日付を送信の瞬間にすることは出来ま
すけど、そこまでしてDate:ヘッダの値にこだわらなくてもまぁいいんじゃな
いかという話で落ちついたような気がします。(他のメールソフトでそこまで
詳しいオプションを用意してる物もたぶん無いだろうし)

[ ]
RE:05686 送信時の「Date:」ヘッダについてNo.05691
とび さん 02/03/01 16:19
 
早速のコメントありがとうございます。

> これは以前にも指摘された件なんですが、一応、Date:はメールを作成した
>日付にする方が適当、というか、そういうメールソフトが多いらしいというこ
>とで、今の仕様でおちついています。

了解しました。

> しいて、Date:ヘッダを最新に更新したい場合には、一度「ファイル・草稿
>に保存」としてから送信しなおす手があります。

現状、こういう運用をしているんですが、ちと手間なのと、うっかり忘れて
しまうことがあるので、伺ってみました。

niftyのフォーラムなどでは、書いた日時ではなく(日時をホスト側で付与するので)
ホストに登録された日時で記録されてました。
(書いた日時を記録したい人は、フッタなどにそれを自分で付与してたと思います。)
この考えかただと、書いた日時と送った日時は別物であることになり、
個人的にはPOPメールでのDateヘッダはどちらかと言うと後者にあたるような印象を
持っていて、
それでこのような運用をしています。
元の思想もシステムも違うので、同列には論じられないと思いますし、
定期的に送信処理しているかたにとっては、書いた日=Dateが正しい事になるのでし
ょうね。
POPメールの元の思想通り、書いてすぐ送りゃあ良いはなしなんですが、
どうもものぐさで・・・(^^;;;)

> オプションを増やしてDate:ヘッダの日付を送信の瞬間にすることは出来ま
>すけど、

機会とお時間があれば、このあたりご検討いただければありがたく思います。


[ ]
RE:05691 送信時の「Date:」ヘッダについてNo.05696
秀まるお2 さん 02/03/01 17:36
 
 オプション追加自体はそんなに難しくないんですが、ダイアログボックスの
空きスペースが無いので、それが問題です。

 「基本・詳細」のページももういっぱいだし…。詳細の下にさらに
「超詳細」でも作るしか無さそうです。

 ということで、また今度の機会にします。

[ ]
RE:05671 送信時の「Date:」ヘッダについてNo.05698
ひろ さん 02/03/01 18:22
 
 とびさん今日は、ひろです。
> 「Date:」ヘッダは、保存した時の日時で送信されているようです。
 既に一応の決着がついていますが、Date ヘッダは RFC で「作成日時」と
なっていたと思います。
http://www.emaillab.org/win-mailer/exp-header.html
を参考にしてください。オリジナルは、
http://www.emaillab.org/emailref/emailref.html
の何処かにあると思います。

[ ]
RE:05698 送信時の「Date:」ヘッダについてNo.05701
秀まるお2 さん 02/03/01 19:06
 
 Date:ヘッダはやはりメールの作成時刻にするのがふさわしいんですね。

 そもそも、今考えてみたら、メールが送信された時刻は、一番最後の
Received:ヘッダの時刻を見れば分かるような気がします。

 そもそも、どうしてDate:ヘッダを送信時刻に合わせる必要があるんでしょ
うか?。Date:ヘッダを見る相手の人が文句を言うという話なら、そもそもそ
の人にメールを送る人全員が文句を言われてしかるべきかと思います。

 もしかして、自分自身の送信済みメール上での日付が気に入らないという話
なら、メール一覧の列の中に「送受信日付/時刻」を出しておけばいいと思い
ます。僕自身もほとんどこっちを使っています。

[ ]
RE:05696 送信時の「Date:」ヘッダについてNo.05705
かわした さん 02/03/01 22:51
 
かわしたです。

> オプション追加自体はそんなに難しくないんですが、ダイアログボックスの
>空きスペースが無いので、それが問題です。

メールの送信時にマクロが自動起動できるようになれば
マクロで解決することもできますが、この案はどうでしょう。
幸い自動起動マクロの設定ダイアログボックスには十分空きが
あるようですし。

後で送信/今すぐ送信時の自動起動との住み分けがちょっと
難しいかな、という気はしますが。

[ ]
RE:05705 送信時の「Date:」ヘッダについてNo.05710
秀まるお2 さん 02/03/02 14:30
 
>後で送信/今すぐ送信時の自動起動との住み分けがちょっと
>難しいかな、という気はしますが。

 「今すぐ送信」ならいいんですけど、「後で送信」の場合にメールを1つ1つ
開いてマクロ起動するようなことは不可能、というよりも、見た目上使い物にな
らないと思います。

 そもそも、マクロで対処するのであれば、鶴亀メールの送受信系コマンドを直
接起動するのではなく、送信用のマクロを作ってそれでなんとかする手がありま
す。

 具体的には未送信フォルダのメールを1つ1つエディタで開いて保存しなおす
処理をしてからSendRemainするようなマクロを作ればいいと思います。

[ ]
RE:05686 送信時の「Date:」ヘッダについてNo.05712
"n'Guin" さん 02/03/02 14:33
 
みなさん。

Mailing list で、たくさんのレスがついたときに、順番がわから
なくなることがあり、Date ヘッダで順番をみたいという要望が、
私が所属している ML ででいます。 この ML は、ひとりが、
毎日数通ないし数十通を出すこともあり、草稿に保存をして、
いちいち開いて送信し直すのは、けっこうな手間暇です。

Date ヘッダが本来、そのように使われるものではないということも
理解できたので、「後で送信」の代わりに、「草稿に保存」をし、
草稿フォルダにつくられた、たくさんのメールを送信し直す
マクロを作成しました。

ここで、#n = dllfunc( "SendNow" );
した後で、そのエディタウィンドウが閉じない(これは
仕様とのことです。)ので、

closehidemaruforced(1);

としていますが、 (1) の決め打ちで、とりあえず動作はしている
のですが、不安を感じます。 何か良い知恵があったら、
教えてください。

# この ML では、Outlook が主流だったのですが、
# ウィルス騒ぎがあったので、秀丸とベッキーとに
# わかれました。 私が秀丸を周りに広めたので、
# 秀丸だと、こんなことも、マクロで快適にやれることを
# ぜひとも、みせたいのです。 よろしくお願いします。



// 草稿フォルダにあるメールを全て送信するマクロ
//
// 草稿フォルダを選択してから、実行してください。

loaddll "TKInfo.dll";

$folder = dllfuncstr( "CurrentFolder" );
if( $folder != "草稿" ) {
message "草稿フォルダが選択されていません。";
endmacro;
}


if( dllfunc( "IsTransmitting" ) ) {
message "現在、送受信中のため、マクロを実行できません。";
endmacro;
}


#mc = dllfunc("MailCountAll");

$msg = "草稿フォルダに、" + str(#mc) + "個のメールがあります。 送信します
か?";
question($msg);
if (result == no) {
message "処理を中断しました。";
endmacro;
}

// ここから本番

while (#mc >0) {
#n = dllfunc( "OpenMail" );
if (#n == 0) {
message "メールを処理できません。";
endmacro;
}
#n = dllfunc( "MailType" );
if (#n == 5) {
// 未送信メール
#n = dllfunc( "SendNow" );
if( #n == 0 ) {
message "送信に失敗しました。";
endmacro;
}
#n = dllfunc( "SetMainWndTop" );
closehidemaruforced(1);
}
#mc = #mc - 1;
}


message "正常に処理を終了しました。";



[ ]
RE:05710 送信時の「Date:」ヘッダについてNo.05716
かわした さん 02/03/02 16:02
 
かわしたです。

> そもそも、マクロで対処するのであれば、鶴亀メールの送受信系コマンドを直
>接起動するのではなく、送信用のマクロを作ってそれでなんとかする手がありま
>す。

マクロから送信するという発想がすっかり抜け落ちてました。
こちらの方が簡単で現実的ですね。[hidesoft.8:05705]の私の発言は
撤回します。

[ ]
RE:05712 送信後エディタウィンドウを閉じるNo.05728
山紫水明 さん 02/03/03 21:54
 
 n'Guinさん,こんばんは。

》closehidemaruforced(1);
》としていますが、 (1) の決め打ちで、とりあえず動作はしている
》のですが、不安を感じます。 何か良い知恵があったら、
》教えてください。

まず,

closehidemaruforced(1);

という書き方は,これでも動くかもしれませんが,正式には,

closehidemaruforced 1;

とするのが,普通です。この場合にはメール内容の変更はないので,

closehidemaru 1;

でいいと思います。
 それで,ウィンドウ番号よりもウィンドウハンドルをとった方が確実かもしれ
ません。

》#n = dllfunc( "SetMainWndTop" );
》closehidemaruforced(1);

この部分を

#handle = hidemaruhandle(0);
#n = dllfunc( "SetMainWndTop" );
closehidemaru #handle;

とされたらいかがでしょう。実行確認はしていませんが。

     では, (^^)/~
                                        山紫水明

[ ]
RE:05728 送信後エディタウィンドウを閉じるNo.05750
"n'Guin" さん 02/03/04 21:44
 
山紫水明さん,こんばんは。

> それで,ウィンドウ番号よりもウィンドウハンドルをとった方が確実かもしれ
>ません。

>この部分を
>
>#handle = hidemaruhandle(0);
>#n = dllfunc( "SetMainWndTop" );
>closehidemaru #handle;
>
>とされたらいかがでしょう。実行確認はしていませんが。
ご指導ありがとうございます。
早速、そうやってみます。
ありがとうございました。

n'Guin

[ ]
RE:05716 送信時の「Date:」ヘッダについてNo.05755
かわした さん 02/03/05 03:55
 
かわしたです。

この件に関わってしまったのも何かの縁ということで、秀まるお2さんの
発言にあった

> 具体的には未送信フォルダのメールを1つ1つエディタで開いて保存しなおす
>処理をしてからSendRemainするようなマクロを作ればいいと思います。

のマクロを作ってみました。以下のマクロを「未送信メールの送信」の
代わりに実行すれば、とびさんの希望の動作になると思われます。

ただし、ヘッダを書き換える際にエディタウィンドウでメールを開かざ
るを得ず、また編集中かどうかのチェックのため余分にエディタウィン
ドウ開閉をしているため、未送信メールが多数ある場合はウィンドウが
開いたり閉じたりして目がチカチカします(^^;

# メールが編集中かどうかを調べるもっといい方法はないものでしょうか

-------------------------  cut here  ---------------------------
// Dateヘッダを更新して未送信メールの送信 マクロ

// 実行環境チェック
loaddll "tkinfo.dll";
if(!result) {
  message "tkinfo.dllのロードに失敗しました";
  endmacro;
}
if(!dllfunc("IsTuruKameMain")){
  message "このマクロは鶴亀本体から実行してください";
  goto END;
}
if(dllfunc("IsTransmitting")){
  message "送受信中はこのマクロは実行できません";
  goto END;
}

// メール選択状態の退避
$ca = dllfuncstr("CurrentAccount");
$cf = dllfuncstr("CurrentFolder");
#mi = dllfunc("MailIndex");

// 未送信メールのDate変更
#n = dllfunc("SelectFolder",$ca,"未送信");
#mc = dllfunc("MailCountAll");
if(#mc > 0){
  #i = 0;
  while(#i < #mc){
    #n = dllfunc("SetMailIndex",#i);
    #n = dllfunc("OpenMail");
    // 編集中かどうかのチェック
    #hw = hidemaruhandle(0);
    #n = dllfunc("SetMainWndTop");
    closehidemaru #hw;
    if(result){
      // 編集中でなければ SendLater にてDateヘッダの更新
      #n = dllfunc("OpenMail");
      #n = dllfunc("SendLater");
      #hw = hidemaruhandle(0);
      #n = dllfunc("SetMainWndTop");
      closehidemaru #hw;
    }
    #i = #i + 1;
  }
}

// メール選択状態の復元
#n = dllfunc("SelectFolder",$ca,$cf);
if(#mi != -1) #n = dllfunc("SetMailIndex",#mi);

// 「未送信メールの送信」発行
if(#mc > 0) #n = dllfunc("StartSendRemain");

END:
  freedll;
  endmacro;

[ ]