自動転送マクロで再びNo.03447
cuma さん 01/06/07 20:36
 
秀まるお様へ
以前はお世話になりました。

あの時に、特定フォルダに振り分けされたメールを対象として
受信時に(受信が一段落)自動で他のアカウントに転送する
マクロを教えて頂きました。

非常に便利に活用しています。

今回は!
1フォルダで無く、他のフォルダに振り分けされたメールも
転送したくなりました。

このような場合のマクロ例をご教授頂ければ幸いです。

案1:受信が一段落した時の登録マクロには
      a.mac
      b.mac
      c.mac
   みたいに、複数のフォルダ分のマクロを連続実行する
   マクロのためのマクロ?を書く

案2:受信が一段落した時の登録マクロを複数指定可能にして
   いただく。

案3:以前教えていただいたマクロを長くする。

自分としては案1みたいに出来れば、マクロファイルの管理が
簡単で、また素人の私が長文マクロを書くのはデバッグも含めて
難儀するので助かります。
しかしマクロを呼ぶマクロの書き方を知らないのです。

また案2も誰でも使えて便利かなあと思います。

案3は勉強になるので、一応回答を知りたいのですが、実用上は
バグりそうなので避けないです。

また宜しくご教授お願い致します。

[ ]
RE:03447 自動転送マクロで再びNo.03448
cuma さん 01/06/07 20:38
 
以前のお礼を書き漏れました。
ひろさん、tatuoさん、ポン太さんもありがとうございました。

[ ]
RE:03447 自動転送マクロで再びNo.03449
ひろ さん 01/06/08 01:12
 
 cuma さん今日は、ひろです。
>    みたいに、複数のフォルダ分のマクロを連続実行する
>    マクロのためのマクロ?を書く
 execmacro を使えばよいです。ただし SelectRecvMail は一度使うとその
メールの、「最近受信したメール」のフラグは書き変わるので、上手くいか
ないかもしれません。

> 案3:以前教えていただいたマクロを長くする。
 私個人はこれをお勧めします。
 更に登録フォルダやアドレスを別 (*.ini) ファイルにしておけば管理も
楽だと思います。マクロ本体は、
//--------------------- AutoForward.mac -------------------------------
loaddll "tkinfo.dll";
$ini = dllfuncstr("HomeDir") + "AutoForward.ini";
if( !dllfunc("SelectFolder","hi-ho", "") )goto DllError;
while( dllfunc("SelectRecvMail") ) {
  if( dllfuncstr( "CurrentAccount" ) != "hi-ho" )break;
  $$address = getinistr($ini,"address",dllfuncstr( "CurrentFolder" ));
  if( $$address != "" ){
    if( !dllfunc("MakeForward") )goto DllError;
    $tmp = dllfuncstr("SetHeader", "To", $$address );
    if( !dllfunc("SendLater") )goto DllError;
    #handle = hidemaruhandle(0);
    if( !dllfunc("SetMainWndTop") )goto DllError;
    closehidemaru #handle;
  }
}
goto End;
DllError:
  message "DLL 関数エラー";
End:
  freedll;
  endmacro;
//---------------------------------------------------------------------------
で、ホームディレクトリに、以下のファイルを用意しておきます。
;----------------------- AutoForward.ini ------------------------------------
[address]
受信\見積\共同携帯\控え="転送したいアドレス"
;----------------------------------------------------------------------------
というファおるを作成しておきます。

[ ]
RE:03447 自動転送マクロで再びNo.03450
きいろいまふらあ さん 01/06/08 01:27
 
>案1:受信が一段落した時の登録マクロには
>      a.mac
>      b.mac
>      c.mac
>   みたいに、複数のフォルダ分のマクロを連続実行する
>   マクロのためのマクロ?を書く

>しかしマクロを呼ぶマクロの書き方を知らないのです。

execmacro "a.mac";
execmacro "b.mac";
execmacro "c.mac";
endmacro;

ってなとこでしょうか?

秀丸をお持ちなら、マクロヘルプで execmacro の項をご覧ください。

[ ]
RE:03450 自動転送マクロで再びNo.03454
cuma さん 01/06/08 15:11
 
ひろさん & きいろいまふらあ  さん回答ありがとうございます。
どちらの回答も私にとって勉強となります。

でも実は私はまだ分かってない為質問させて下さい。

ひろさん:

>execmacro を使えばよいです。ただし SelectRecvMail は一度使うとその
>メールの、「最近受信したメール」のフラグは書き変わるので、上手くいか
>ないかもしれません。

この意味が良く分かりませんでした。でもとりあえず実験すれば意味が
現象として見れるかもしれないですね。

>で、ホームディレクトリに、以下のファイルを用意しておきます。
>;----------------------- AutoForward.ini ---------------------->---------
>-----
>[address]
>受信\見積\共同携帯\控え="転送したいアドレス"

転送対象となるフォルダが複数ある場合は、このiniファイルに複数フォルダ
を指定できるのでしょうか?

きいろいまふらあさん:

ひろさんが言われた「最近受信したメール」フラグは問題でしょうか?

本当は自分で実験した方がいいのかもしれませんが、マクロを変えると
予想外の事が起きて本来したい事以外で悩んでしまいます。
もう少し慣れるまで色々ご教授頂ければ幸いです。

[ ]
RE:03454 自動転送マクロで再びNo.03462
ひろ さん 01/06/08 18:06
 
 cuma さん今日は、ひろです。
 手抜きレスです。
> この意味が良く分かりませんでした。でもとりあえず実験すれば意味が
 SelectRecvMail をヘルプで調べてみてください。
 それで解らなければ、改めてお尋ね頂ければ良いです。

> >[address]
> >受信\見積\共同携帯\控え="転送したいアドレス"
>
> 転送対象となるフォルダが複数ある場合は、このiniファイルに複数フォルダ
 勿論出来ます。
[address]
folder1="address1"
folder2="address2"
folder3="address3"
という要領です。ただし複数アカウントには対応していないので、その場合
はマクロの変更が必要です。

[ ]
RE:03462 自動転送マクロで再びNo.03464
cuma さん 01/06/08 20:24
 
ひろさん再び回答ありがとうございます。

> SelectRecvMail をヘルプで調べてみてください。
> それで解らなければ、改めてお尋ね頂ければ良いです。

>> 転送対象となるフォルダが複数ある場合は、このiniファイルに複数フォルダ
> 勿論出来ます。
>[address]
>folder1="address1"
>folder2="address2"
>folder3="address3"
>という要領です。ただし複数アカウントには対応していないので、その場合
>はマクロの変更が必要です。

実例ありがとうございます。
マクロ初心者なので実例があると凄く助かります。
そして運良いことに私の現在の要望はアカウントはまたがないので
これで行けそうです。

どうもありがとうございます。

[ ]
RE:03454 自動転送マクロで再びNo.03474
きいろいまふらあ さん 01/06/09 13:08
 
>ひろさんが言われた「最近受信したメール」フラグは問題でしょうか?

どういった意味ででしょうか?

われながら失礼な態度で申し訳ないのですが、単に

>しかしマクロを呼ぶマクロの書き方を知らないのです。

にコメントしただけで、問題の本質を全く理解していません。(^^;

[ ]
RE:03474 自動転送マクロで再びNo.03475
cuma さん 01/06/09 15:14
 
>>ひろさんが言われた「最近受信したメール」フラグは問題でしょうか?
>
>どういった意味ででしょうか?
>
>われながら失礼な態度で申し訳ないのですが、単に
>
>>しかしマクロを呼ぶマクロの書き方を知らないのです。
>
>にコメントしただけで、問題の本質を全く理解していません。(^^;

私こそすみません。
マクロだけで無く、メーラーの動作(未読とかの状態遷移?)に
無知なので、そのまま質問してしまいました。

質問した意図が伝わらないのは私の不勉強による質問だから
意図が不明確なのだと思います。
ちょっと勉強してみます。

[ ]