振り分けでの転送でNo.15312
Katumi さん 03/11/13 10:19
 
 小島です。
 いろいろ探したのですが見つからなかったので質問させてください。

 振り分け設定中の「高度な動作の指定」に「そのまま転送」はあるのですが、
テンプレートを使用した転送はできますでしょうか?
 やりたいことは
 (1)Aさんからメールが来る
 (2)フォルダに振り分けし、BさんへAさんからのメールであることを本文中
に記載して転送する → そのまま転送ではなく、通常の転送メールです

 現在はフォルダに振り分けされた後、手動で転送しております。
 よろしくお願いいたします。
 
 環境は鶴亀Ver3.07β6です。

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Ver5.1 Build 2600.xpsp1.020828-1920:SP1
IE 6.0.2800.1106.xpsp1.020828-1920:SP1

[ ]
RE:15312 振り分けでの転送でNo.15316
秀まるお2 さん 03/11/13 11:42
 
 テンプレートを使った自動での転送は、振り分け設定だけでは出来ません。

 どうして出来ないかと言うと、テンプレートの処理やメールを作成する処理の
最中に何らかのエラーが発生すると、そこでそのままエラーメッセージが出っぱ
なしになってしまい、受信が中途半端な所で止まってしまう(サーバーを待たせ
っぱなしで停止してしまう)可能性があるからです。

 ということで、こういうケースはマクロで対処していただくしかありません。

 かなり前にも同じようなマクロの例があったと思いますが、具体的な作戦とし
ては、こうなります。

 − 自動返信なり自動転送したいメールが、特定のフォルダに集まるよう
   に、振り分け設定する。
 − そのフォルダのフォルダ毎設定で、適当な転送用テンプレートを指定
   しておく。
 − 振り分け先の特定フォルダ中の新着を自動転送するようなマクロを作る。
 − そのマクロを、「マクロ・マクロ登録・自動起動」の「受信が一段落
   した時」に登録しておく。

 マクロでどうするかというと、それは少々難しい話になります。作戦としては、

 1.SelectFolder関数で振り分け先フォルダを選択する。
 2.SelectRecvMailInFolder関数で受信したメールを1つ選択する。
 3.MakeForward関数で転送メールを作成する。
 4.SendLater関数で転送させる。
 5.2〜4を繰り返す。
 6.最後に、StartSendRemain関数を使って未送信メールを送信する。

 っとなります。

 具体的な例が必要でしたら、作ってみてもいいです。または、ライブラリなり、
ここの会議室の過去ログを、例えば「SelectRecvMainInFolder」で検索するなど
すると出てくるかもしれません。

 過去ログ検索サイト:

    http://hidemaruo.dip.jp:81/

[ ]
RE:15316 振り分けでの転送でNo.15317
Katumi さん 03/11/13 12:06
 
 小島です。
 回答ありがとうございました。
 やはり、マクロで対応するしかないのですね・・・

| 1.SelectFolder関数で振り分け先フォルダを選択する。
| 2.SelectRecvMailInFolder関数で受信したメールを1つ選択する。
| 3.MakeForward関数で転送メールを作成する。
| 4.SendLater関数で転送させる。
| 5.2〜4を繰り返す。
| 6.最後に、StartSendRemain関数を使って未送信メールを送信する。

 上記のように教えていただいたとおり、がんばってマクロ書いて見ます。

 ちなみに
| 過去ログ検索サイト:
|
|    http://hidemaruo.dip.jp:81/
 ここで「SelectRecvMailInFolder」を検索してもありませんでした。
 ヘルプ等参考にしながら書いてみます。
 ありがとうございました。

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]
RE:15317 振り分けでの転送でNo.15320
秀まるお2 さん 03/11/13 12:25
 
>  ここで「SelectRecvMailInFolder」を検索してもありませんでした。

 いくつかヒットするようですが、以下の記事が参考になるかと思います。

    http://maryo.dyndns.org:81/hidesoft/hidesoft_8/x12740.html

[ ]
RE:15320 振り分けでの転送でNo.15322
かわした さん 03/11/13 12:33
 
かわした%ユーザです。
すぐに気づかれるとは思いますが・・・

> いくつかヒットするようですが、以下の記事が参考になるかと思います。
>    http://maryo.dyndns.org:81/hidesoft/hidesoft_8/x12740.html
     http://hidemaruo.dip.jp:81/hidesoft/hidesoft_8/x12740.html

ですね(^^;

[ ]
RE:15322 振り分けでの転送でNo.15323
Katumi さん 03/11/13 13:06
 
 小島です。
 秀まるおさん、かわしたさんありがとうございます。
 がんばって書いてみます。

|かわした%ユーザです。
|すぐに気づかれるとは思いますが・・・
|
|> いくつかヒットするようですが、以下の記事が参考になるかと思います。
|>    http://maryo.dyndns.org:81/hidesoft/hidesoft_8/x12740.html
|     http://hidemaruo.dip.jp:81/hidesoft/hidesoft_8/x12740.html
|
|ですね(^^;

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]
RE:15323 振り分けでの転送でNo.15334
Katumi さん 03/11/13 19:44
 
 小島です。
 以下のようなマクロを書いてみました。
 loaddll "tkinfo.dll";
 #n = dllfunc("SelectFolder","test","test");
 #n = dllfunc("SelectRecvMailInFolder");
 #n = dllfunc("MakeForward");
 #n = dllfunc("SendNow");
 endmacro;
 この時に転送メールを作ったエディタ画面が残ってしまいます。
 どのようにすればよろしいのでしょうか?
 よろしくお願いいたします。

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]
RE:15334 振り分けでの転送でNo.15337
かわした さん 03/11/13 21:10
 
かわした%ユーザです。

> この時に転送メールを作ったエディタ画面が残ってしまいます。
> どのようにすればよろしいのでしょうか?

http://hidemaruo.dip.jp:81/hidesoft/hidesoft_8/x12740.html

のスレッドの秀まるおさんのマクロより引用しますが

#wnd = hidemaruhandle(0);
#n = dllfunc("SetMainWndTop");
closehidemaruforced #wnd;

の3行を endmacro; の前の行に追加してください。

この処理に限らず、複数の該当メールがあった場合の処理なども考
慮されているので、上記スレッドの秀まるおさんのマクロを元に改
変していった方がより早く小鳩さんの目的のマクロが完成するかも
しれません。

[ ]
RE:15337 振り分けでの転送でNo.15338
かわした さん 03/11/13 21:13
 
かわした%ユーザです。

>変していった方がより早く小鳩さんの目的のマクロが完成するかも

よく確認する前に投稿してしまい、お名前を間違えてしまいました。
ごめんなさい > 小島さん

[ ]
RE:15337 振り分けでの転送でNo.15342
Katumi さん 03/11/14 08:35
 
 小島です。
 かわしたさまありがとうございます。
 早速マクロを書き直してみたところ、うまく動作いたしました。
 書き直したマクロは以下の通りです。
loaddll "tkinfo.dll";
 #n = dllfunc("SelectFolder", "test", "test");
 #count = 0;
 while( dllfunc("SelectRecvMailInFolder") ) {
  #n = dllfunc( "SelectRecvMailInFolder" );
  #n = dllfunc( "MakeForward" );
  #n = dllfunc( "SendLater");
  #wnd = hidemaruhandle(0);
  #n = dllfunc("SetMainWndTop");
  closehidemaruforced #wnd;
     #count = 1;
    }
 if( #count != 0 ) {
  #n = dllfunc("StartSendRemain");
    }
endmacro;
 これで、希望の動作になりました。
 いろいろお手数おかけしまして、ありがとうございました。

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]
RE:15342 振り分けでの転送でNo.15343
Katumi さん 03/11/14 09:48
 
 小島です。
 希望の動作になったと思ったのですが、なぜかtestフォルダに新着が無い場
合に、現在選択しているフォルダの新着を転送しようとしてしまいます。
 どこがいけないのでしょう?
 たびたびの質問大変申し訳無いのですが、よろしくお願いいたします。

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]
RE:15343 振り分けでの転送でNo.15345
秀まるお2 さん 03/11/14 13:29
 
>  希望の動作になったと思ったのですが、なぜかtestフォルダに新着が無い場
> 合に、現在選択しているフォルダの新着を転送しようとしてしまいます。

 もしかして、SelectFolderが失敗してるんじゃないでしょうか。

 アカウント直下に作成したフォルダの場合、フォルダ名を「User\\test」のよ
うに指定しないとダメです。

 「test」というアカウントの直下に作った「test」というフォルダを選択させ
るには、

    #n = dllfunc("SelectFolder", "test", "User\\test");

 としないとダメです。もっと正確に動作させるには、

    if( dllfunc("SelectFolder", "test", "User\\test") == 0 ) {
        message "フォルダの選択に失敗しました。";
        endmacro;
    }

 とした方がいいと思います。

[ ]
RE:15345 振り分けでの転送でNo.15348
Katumi さん 03/11/14 14:01
 
 小島です。
 確かにフォルダの選択を失敗してました。
 書き直したマクロはこんな感じです。

loaddll "tkinfo.dll";
 $a = dllfuncstr( "CurrentAccount" );
 $f = dllfuncstr( "CurrentFolder" );
 if( dllfunc("SelectFolder", "test", "受信\\test") == 0 ) {
  message "フォルダの選択に失敗しました。";
  endmacro;
 }
 #count = 0;
 while( dllfunc("SelectRecvMailInFolder") ) {
  #n = dllfunc( "SelectRecvMailInFolder" );
  #n = dllfunc( "MakeForward" );
  #n = dllfunc( "SendLater");
  #wnd = hidemaruhandle(0);
  #n = dllfunc("SetMainWndTop");
  closehidemaruforced #wnd;
     #count = 1;
    }
 if( #count != 0 ) {
  #n = dllfunc("StartSendRemain");
    }
 if( dllfunc("SelectFolder", $a, $f) == 0 ) {
  message "フォルダの選択に失敗しました。";
  endmacro;
 }
endmacro;

 どうしても最後にtestフォルダを選択した状態になってしまうので、送受信
前の場所へ最後に移動するように改造してみました。

 これで、やりたかったことができるようになりました。
 ありがとうございましたm(_ _)m

/------
小島克己(katumi_kojima)
xxxxxxxx@nifty.com

WindowsXP Professional Version2002 SP1
IE 6.0.2800.1106.xpsp2.030422-1633CO

[ ]