「現在メールの再受信」のコマンドコードNo.07300
haru2 さん 03/10/28 17:15
 
 一旦、受信時に削除した添付ファイルを、それが含まれるメール
を再度、受信して、添付ファイルを取り出す、という作業をマクロ
でやろうとしています。
 「受信時に振り分ける」を一時的にOFFにして受信した後、「リ
モートメール−現在メールの再受信」を実行したいのですが、「リ
モートメール−現在メールの再受信」をどう書けば良いかわかりま
せん。
 ヘルプの裏技に、sendmessageを使えば良いということが書かれ
ていましたが、
 上記、コマンドコードの値がわかりません。
> 各コマンドのコマンドコードの値は、たとえばVisualC++に付属している「スパイ
>++」などのツールを使って調べることができます。なので、ご自分で調べてくださ
>い。どうしても分からなければサポート拠点に問い合わせください。
 とのことなんですが、VisualC++を持っていないので調べられま
せん。
 どうか、よろしくお願いします。

 それと、以前、たまがわさんに、
 http://www.maruo.co.jp/turukame/2/x06957_.html#6963
 で、
>>  再ダウンロードした時は、削除しないようにするにはどうすれば
>> 良いですか?
> 一番簡単なのは、添付ファイルを復活させるときに、再ダウンロードするのではな
>く、「受信解析のやり直し」をすることだと思います。
> ただし、ディスクスペース倹約のために受信ログも取っていないという場合には、
>この方法は使えませんけど。
 受信ログを取っておいて、「受信解析のやり直し」を実行したん
ですが、添付ファイルを復活できませんでした。
 受信時、削除してしまった添付ファイルを「受信解析のやり直し」
で復活させることは可能なんでしょうか?
 よろしくお願いします。
 ver3.07b11です。

[ ]
RE:07300 「現在メールの再受信」のコマンNo.07303
秀まるお さん 03/10/28 18:01
 
#define IDM_REMOTEMAIL_RELOAD           40209

 ということで、40209番でいいです。

> >>  再ダウンロードした時は、削除しないようにするにはどうすれば
> >> 良いですか?

 「アカウント毎の設定・メールサーバー」の「受信したメールをサーバー上に
残す」をONにしておけば消えないはずです。そもそもリモートメールで再度ダウ
ンロードできるということは、上記オプションはONのはずかと思います。???

 しいて、そこがOFFになっている状況でどうしてもということなら、
LoadAccountProp/SetAccountProp/SaveAccountPropを使うなどして、一時的に設
定変更して40209番をsendmessageする形になろうかと思います。

[ ]
RE:07300 「現在メールの再受信」のコマンNo.07304
たまがわ さん 03/10/28 18:04
 
haru2さん、こんばんは。たまがわです。

> 受信ログを取っておいて、「受信解析のやり直し」を実行したん
>ですが、添付ファイルを復活できませんでした。
> 受信時、削除してしまった添付ファイルを「受信解析のやり直し」
>で復活させることは可能なんでしょうか?

 振り分け設定の「高度な動作の指定」で添付ファイルを自動的に削除するよう
にしている場合、「受信解析のやり直し」をしたときに、その設定によって添付
ファイルを削除してしまうようです。
 振り分け設定を一時的に止めて(たとえば「受信時に自動振り分けする」のチ
ェックをはずして)試してみると、添付ファイルが復活すると思います。

 裏技については私にはわかりませんけど、マクロでやる場合、受信ログがある
のなら、ログからエクスポートして、それをインポートするのが簡単かも。ただ
し、インポートするときに「受信したように処理する」にしないように…(振り
分けが効いてしまいます)。

[ ]
RE:07304 「現在メールの再受信」のコマンNo.07306
秀まるお さん 03/10/28 18:37
 
 たしかに、振り分け設定で添付ファイル削除を指示した場合は「受信解析のや
り直し」でも復活できないようです。これはこれでバグとして修正させていただ
きます。

[ ]
RE:07303 「現在メールの再受信」のコマンNo.07307
haru2 さん 03/10/29 10:19
 
> ということで、40209番でいいです。
 これでできました。ありがとうございます。

[ ]
RE:07304 「現在メールの再受信」のコマンNo.07308
haru2 さん 03/10/29 10:26
 
たまがわさん、こんにちは。

> 振り分け設定を一時的に止めて(たとえば「受信時に自動振り分けする」のチ
>ェックをはずして)試してみると、添付ファイルが復活すると思います。
 復活しないので、これはバグとして修正していただけるようです。

> 裏技については私にはわかりませんけど、マクロでやる場合、受信ログがある
>のなら、ログからエクスポートして、それをインポートするのが簡単かも。ただ
>し、インポートするときに「受信したように処理する」にしないように…(振り
>分けが効いてしまいます)。
 一応、裏技でできました。
 今後、ログからエクスポートして、それをインポートする方法も、
考えたいと思います。
 ありがとうございます。

[ ]
RE:07306 「現在メールの再受信」のコマンNo.07309
haru2 さん 03/10/29 10:51
 
> たしかに、振り分け設定で添付ファイル削除を指示した場合は「受信解析のや
>り直し」でも復活できないようです。これはこれでバグとして修正させていただ
>きます。
 よろしくお願いします。


 ところで、今回マクロで、SaveAccountPropを使ったんですが、
>送受信途中でSaveAccountPropしても、現在の送受信のためのアカウントプロパティ
>には反映されず、次の送受信以降にだけ反映されます。
 という説明がヘルプにありました。
 送受信が完了するまでは、次のマクロを実行させないようにする
ようなマクロはないんでしょうか?
 (リモートメールのTransmitAll版みたいなもの。)
 とりあえず、今回は過去ログを参照して、tickcountを使いまし
た。これで少しは一定時間が稼げるのですが、添付ファイルの大き
さがまちまちで、時間設定がうまくいきません。
 何か良い方法はないでしょうか?


P.S.
 10/1に投稿しました
 http://www.maruo.co.jp/turukame/2/x07220_.html#7220
 にも、何かコメントを頂けると幸いです。
 因みに、ver3.07b11版でも、同様のメッセージが表示されます。
 よろしくお願いします。

[ ]
RE:07309 「現在メールの再受信」のコマンNo.07310
秀まるお さん 03/10/29 13:47
 
>  送受信が完了するまでは、次のマクロを実行させないようにする
> ようなマクロはないんでしょうか?
>  (リモートメールのTransmitAll版みたいなもの。)

 sendmessageを使う限りは、コマンドが終了するまで返ってきません。

 詳しくはWindowsのAPIを…。っと言っても仕方がないですが、sendmessage文
の直後にmessage文を入れてみれば納得していただけると思います。

[ ]
RE:07310 「現在メールの再受信」のコマンNo.07313
haru2 さん 03/10/29 14:18
 
> sendmessageを使う限りは、コマンドが終了するまで返ってきません。
> 詳しくはWindowsのAPIを…。っと言っても仕方がないですが、sendmessage文
>の直後にmessage文を入れてみれば納得していただけると思います。
 納得しました。
 sendmessageの後で、tickcountしなくて良さそうです。
 ありがとうございます。

[ ]
RE:07307 「現在メールの再受信」のコマンNo.07331
haru2 さん 03/11/04 15:40
 
>> ということで、40209番でいいです。
> これでできました。ありがとうございます。
 メールをサーバ上から、削除してあって、そういう状態で実行す
ると、
 「現在選択しているメールはリモートメール一覧中に存在してい
ません。」と表示されます。
 このメッセージが表示されても、
 #n = sendmessage( hidemaruhandle(0), 0x0111, 40209, 0);
 の関数自体は成功しているようなんですが、何か良い対処法はな
いでしょうか?
 (返り値が別の値になれば良いんですが。)

 あるいは、リモートメールを使わず、「受信解析のやり直し」で
対処できるかもと思いますので、「受信解析のやり直し」のコマン
ドコードを教えていただきたいのですが。
 よろしくお願いします。

[ ]
RE:07331 「現在メールの再受信」のコマンNo.07333
秀まるお さん 03/11/04 18:19
 
 受信解析のやり直しコマンドは、40060番です。

>  「現在選択しているメールはリモートメール一覧中に存在してい
> ません。」と表示されます。
>  このメッセージが表示されても、
>  #n = sendmessage( hidemaruhandle(0), 0x0111, 40209, 0);
>  の関数自体は成功しているようなんですが、何か良い対処法はな
> いでしょうか?

 メールの受信に成功したかどうかについては、RecvMailCount関数で分かるん
じゃないかと思います。(未確認ですが)

 メッセージボックスに自動でOKさせたいって話なら、SetAutoPushTimer関数が
使えるかもしれません。(これまた未確認&成功の可能性低いかもしれないで
す)

[ ]
RE:07333 「現在メールの再受信」のコマンNo.07336
haru2 さん 03/11/05 10:25
 
> メールの受信に成功したかどうかについては、RecvMailCount関数で分かるん
>じゃないかと思います。(未確認ですが)

 1.ヘルプによると、
> 直前にリモートメールコマンドを実行している場合には、メール個数には0が返
>ってきてしまいます。
 「現在選択しているメールはリモートメール一覧中に存在してい
ません。」と表示された場合、リモートメールコマンドは実行され
ず、メール個数が0にならない気がします。
 sendmessage( hidemaruhandle(0), 0x0111, 40209, 0)
 は、リモートメールコマンドを実行していないんでしょうか?


 2.ヘルプの例外規定によると、
> 「全般的な設定・送受信」の「何か受信したときにメッセージ表示する」がONの
>場合で、メッセージ表示したまま定期受信が何度も実行された場合、RecvMailCount
>およびRecvMailCountShow関数の返す値は、定期受信で受信したメールの合計を返し
>ます。
 とのことなんですが、
 「何か受信したときにメッセージ表示する」はoffになっていま
した。
 それでも、messageで表示してみると、RecvMailCount関数の返す
値は、定期受信で受信したメールの合計を返しているようです。
 「現在選択しているメールはリモートメール一覧中に存在してい
ません。」と表示されたにもかかわらず、メール個数が0になりま
せん。
 よろしくお願いします。


> メッセージボックスに自動でOKさせたいって話なら、SetAutoPushTimer関数が
>使えるかもしれません。(これまた未確認&成功の可能性低いかもしれないで
>す)
 「現在選択しているメールはリモートメール一覧中に存在してい
ません。」の時は、良いんですが、そうでないときは、受信中に、
SetAutoPushTimerで動作が中止されられてしまいます。

 よろしくお願いします。

[ ]
RE:07336 「現在メールの再受信」のコマンNo.07339
秀まるお さん 03/11/05 22:08
 
 すっかり無責任モードでコメントしてるような気がしますが、haru2さんが試
してだめだったということは、だめなんでしょうね。

 そういうことで大変遠回しになってしまいましたが、最低限の対応だけはした
いと思います。

 必要そうなのは、つまり、「リモートメール - 現在メールの再受信」を実行
して、その実行結果が返り値として返るような関数をtkinfo.dllに追加するって
ことでいいですかね?。

 その関数を使った場合は、「現在選択しているメールはリモートメール一覧中
に存在していません。」のエラーメッセージも出さずに終了すると言うことで…。

[ ]
RE:07339 「現在メールの再受信」のコマンNo.07344
haru2 さん 03/11/06 08:17
 
> 必要そうなのは、つまり、「リモートメール - 現在メールの再受信」を実行
>して、その実行結果が返り値として返るような関数をtkinfo.dllに追加するって
>ことでいいですかね?。
 はい、良いです。ありがとうございます。

> その関数を使った場合は、「現在選択しているメールはリモートメール一覧中
>に存在していません。」のエラーメッセージも出さずに終了すると言うことで…。
 よろしくお願いします。

[ ]
RE:07344 「現在メールの再受信」のコマンNo.07346
秀まるお さん 03/11/06 16:20
 
 RemoteMailReload関数と、ついでにRemoteMailDelete関数を追加します。

[ ]
RE:07346 「現在メールの再受信」のコマンNo.07349
haru2 さん 03/11/07 09:40
 
> RemoteMailReload関数と、ついでにRemoteMailDelete関数を追加します。
 β15で、追加されているのをヘルプで確認しました。
 ところで、実際実行してみました。
 すると、「dllfunc関数で指定された呼び出し先が見つかりませ
ん。」とのメッセージが表示されました。
 ヘルプによる「パラメータはありません。」とのことなので、
 if ( dllfunc( "RemoteMailRelaod" ) ) {
 という使い方をしました。
 何か問題あるんでしょうか?
 よろしくお願いします。

[ ]
RE:07349 「現在メールの再受信」のコマンNo.07352
秀まるお さん 03/11/07 12:44
 
>  if ( dllfunc( "RemoteMailRelaod" ) ) {

 RemoteMailRelaodじゃなくて、RemoteMailReloadです。

 っと思ったら、ヘルプが間違ってました。大変失礼しました。

[ ]
RE:07352 「現在メールの再受信」のコマンNo.07354
haru2 さん 03/11/07 13:26
 
> RemoteMailRelaodじゃなくて、RemoteMailReloadです。
> っと思ったら、ヘルプが間違ってました。大変失礼しました。
 偶然、ヘルプのコピーした部分がスペルミスだったんですね。
 一応、うまくいきました。また何かありましたら、よろしくお願
いします。
 ありがとうございます。

[ ]