送受信エラーのダイアログボックスをすぐNo.34742
いけ さん 08/09/23 01:23
 
いつもお世話になります。

自動的にメールを送信する処理を含むマクロを作りましたが、何らか
の理由で送信エラーが起こった時のことで困っています。

そもそも無人で、キーワードを含むメールの受信をトリガーとして動
作させることを前提にしたマクロなので、送信エラーのダイアログが
出てきてもあまり意味ありません。むしろ、いちはやく受信待機状態
に戻すためそのダイアログはできるだけ早く消えてほしいと思います。

設定−アカウント毎の設定−上級者向け−その他にて、「受信字にエ
ラーが起きてもメッセージ表示しない」というものがありますが、送
信で同じようなオプションができないでしょうか?

もしくは、「送受信エラーの記録」ダイアログボックスで、「このエ
ラーメッセージを5分後に自動で閉じる」というチェック欄がありま
すが、そこを1分とか任意の数字に変更できるようにならないでしょ
うか?
→ただ、5分後にはさらに別のダイアログが出てきて選択を迫られる
ようなので根本的解決にはなりませんが。。

もしくは、すぐにマクロで強引にこれを閉じようとすると、
・TransmitError
・SetAutoPushTimer
などを組み合わせればよさそうですが、適切なボタンを選択して未送
信フォルダに保存せずにメール受信待機状態へ戻そうとする場合の処
理が分かりません。

恐れ入りますが、ご教示よろしくお願い致します。

[ ]
RE:34742 送受信エラーのダイアログボックNo.34745
秀まるお2 さん 08/09/24 09:31
 
 マクロで具体的にやろうとしてることは「今すぐ送信」でメールを送るという
作戦ですかね。とりあえずこれを「あとで送信」にしたらいいんじゃないかと思
います。そうすれば、とりあえず自動運転でも送信は可能ではないかと思います。

 ただし、エラーになった時にマクロが5分停止するのは避けられないです。で
も、一応5分経過した後になんとか処理を続行することは可能だし、定期的に
メールを受信して動作する用のマクロであれば、定期受信の間隔をが5分伸びる
程度は別にいいんじゃないかと思いますけど。

 例えばですけど、送信不能なメールを未送信フォルダに入れて、マクロで

    loaddll "tkinfo.dll";
    #n = dllfunc("SendRemain");
    #n = dllfunc("StopAutoPushTimer");
    message "おわり";

 ってマクロを動かす分にはうまく動くようです。

 エラーになったメールは未送信フォルダにそのまま残るので、例えばマクロの
後始末処理として、未送信フォルダに残ったメールをどこか別の(エラーメール
用の)フォルダに移動するようにしておけばいいんじゃないかと思います。

 ってことでどうでしょ?

[ ]
RE:34745 送受信エラーのダイアログボックNo.34760
いけ さん 08/09/26 01:18
 
いつもお世話になります。

> マクロで具体的にやろうとしてることは「今すぐ送信」でメールを送るという
>作戦ですかね。

説明不足でしたが、確かにその通りです。

マクロとは関係なく試してみましたが、確かに一旦未送信フォルダ
に保存したあとだと、エラーのダイアログボックスは5分後に消える
ようなのでそのまま続行できそうですね。いい感じです。
※欲を言えば、5分未満で消えるよう調整できるともっといいのですが。

ただ、マクロでやろうとすると「?」の状態です。

#n = dllfunc("SendLater");
exit;
#n = dllfunc("SendRemain");

確かに1行目の実行で未送信に保存されますが、メールのエディタ
画面はそのままなので2行目のexitで閉じます。
するとマクロが終わって?、3行目の送信はできないようです。

まだよく分かってないので初歩的な質問かもしれませんが、一回で
1)未送信フォルダに保存
2)エディタ画面終了
3)いま保存した未送信メールを送信

ということを実行しようとすると、どのような書き方にすれば
よいのでしょうか?

そもそも保存したらエディタ画面は自動的に閉じるものですか?
(私のエディタ画面のマクロ操作の方法がまずいだけ?)

よろしくお願い致します。

[ ]
RE:34760 送受信エラーのダイアログボックNo.34761
秀まるお2 さん 08/09/26 09:09
 
    #n = dllfunc("SendLater");
    #editor = hidemaruhandle(0);
    #n = dllfunc("SetMainWndTop");
    closehidemaruforced #editor;
    #n = dllfunc("SendRemain");

 ってな具合でいけるはずだと思います。(確認までしてませんが)

[ ]
RE:34761 送受信エラーのダイアログボックNo.34776
いけ さん 08/09/28 21:42
 
いつもお世話になります。

下記の

>    #n = dllfunc("SendLater");
>    #editor = hidemaruhandle(0);
>    #n = dllfunc("SetMainWndTop");
>    closehidemaruforced #editor;
>    #n = dllfunc("SendRemain");

という方法でいけました。

結局、件名のように送受信エラーのダイアログボックスを
すぐに閉じなくても、何とかなるということですね。

これで(送受信エラーがあっても)自動運転の目処が立ちました。

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

[ ]