|
かわしたです。
この件に関わってしまったのも何かの縁ということで、秀まるお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;
|
|