秀丸メールで自動返信をしたい(マクロでNo.47130
siniti さん 14/12/08 09:20
 
秀丸メールをいつも使わせて頂いています。

動作環境は以下のとおり
秀丸メール:V6.30 32ビット版
OS:Windows7 SP1

以下の事を秀丸メールマクロで実現したい。
どなたか教えてください。

1)定期受信 を15分間隔で実施。
2)定期受信時に、ある(複数の)Fromアドレスからのメールに対して、
 Subjectの先頭にある文字列(【受付完了】)を付加して全返信したい。
 但し、自分自身には返信をしない。(受信メールのToには返信しない)
 又、返信には自分自身をBccに入れたい.(これは、設定-アカウント毎の設定-個人
情報-詳細-Bccヘッダの追加で可能の様です)
3)この条件は無理かも?
 受信したメールに対して既に返信している場合には、返信不要。
 →この受信アドレスは複数人が見ており、他の人が先に件名に
  同じ文字列(【受付完了】)を付加して返信している場合には動作不要

[ ]
RE:47130 秀丸メールで自動返信をしたい(No.47133
秀まるお2 さん 14/12/08 10:45
 
 自動返信をするとしたら、マクロを使ってやるしか無いです。自動返信用の
マクロを作って、それを「マクロ・マクロ登録...」の「自動起動」ページの
「受信が一段落した時」に登録しておく形になります。

 マクロを自分で作ってテストとかもしないといけないので、簡単ではないです。
今までコンピュータプログラムの類を一度も作ったことが無い方だとかなり苦労
される可能性が高いと思います。

 その上で、一応例を紹介させていただきますと…

 マクロの例は、例えばgoogleで「秀丸メール selectrecvmail makereplycustom」
のようなキーワードで検索するとヒットするようですが、例えばすべてのメール
(ただし自分からのメールは除く)に返信する例だと、

    loaddll "tkinfo.dll";
    while( dllfunc("SelectRecvMail") ) {
        if( dllfuncstr("CurrentHeader","Precedences") == "bulk" ) {
            continue;
        }
        $from = dllfuncstr("SetEmailOnly", dllfuncstr("CurrentHeader","From
"));:
        if( $from == "xxxx@xxxxxx.co.jp" ) {
            continue;
        }
        #n = dllfunc("MakeReplyCustom", "Single", "", "");
        #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
        #n = dllfunc("SendLater");
        #handle = hidemaruhandle(0);
        #n = dllfunc("SetMainWndTop");
        closehidemaruforced #handle;
    }

 みたいな感じになります。上記の例は、あらかじめ「設定・テンプレート/署
名の編集...」で「自動返信テンプレート」って名前のテンプレートを作成して
おいてそれで返信する例になります。

 テンプレートの例としては、

$(SetHeader,"Subject","【受付完了】 "+$(RootHeader,Subject))$-
$(SetHeader,"Bcc","自分のメールアドレス")$-
$(SetHeader,"Precedences","bulk")
 メールを受け取りました。

 みたいにしておけばいいんじゃないかと思います。

 そういう感じでトライしてみてはどうでしょうか。

 上記の例は「SelectRecvMail」って関数を使ってるのですべてのメールに反応
してしまいます。特定のメールにのみ返信したい場合は、例えば自動返信したい
メールをどこかのフォルダに振り分けるように振り分け設定した上で、
SelectRecvMailInFolder関数を使う作戦にした方がいいと思います。

[ ]
RE:47133 秀丸メールで自動返信をしたい(No.47155
siniti さん 14/12/11 13:00
 
秀まるお2様

先日は自動返信マクロのご提供ありがとうございます。
ほぼ意図した動きになっていますが、

>        if( $from == "xxxx@xxxxxx.co.jp" ) {
>            continue;
>        }
>        #n = dllfunc("MakeReplyCustom", "Single", "", "");
>        #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
>        #n = dllfunc("SendLater");
>        #handle = hidemaruhandle(0);
>        #n = dllfunc("SetMainWndTop");
>        closehidemaruforced #handle;
>    }

では、全ての受信メールに反応していたので、
指定したアドレスからの受信メールだけに反応する様に
以下のように修正しました。

>        if( $from == "xxxx@xxxxxx.co.jp" ) {
>        #n = dllfunc("MakeReplyCustom", "Single", "", "");
>        #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
>        #n = dllfunc("SendLater");
>        #handle = hidemaruhandle(0);
>        #n = dllfunc("SetMainWndTop");
>        closehidemaruforced #handle;
>        }
>    }


また、このマクロでは、指定したアドレスの受信メールに反応して
返信メールを作成はしますが、「未送信」フォルダに格納だけされて
自動的に送信してくれません。
何か足りませんですか?


また、
>        if( $from == "xxxx@xxxxxx.co.jp" ) {
の部分ですが、複数のアドレスに反応するためには、どの様に記述
すればよいかを伝授して頂けますか?

[ ]
RE:47155 秀丸メールで自動返信をしたい(No.47156
秀まるお2 さん 14/12/11 13:41
 
> また、このマクロでは、指定したアドレスの受信メールに反応して
> 返信メールを作成はしますが、「未送信」フォルダに格納だけされて
> 自動的に送信してくれません。

 「全般的な設定・定期受信」の「定期受信の動作」を「送受信」にすれば、未
送信メールの送信も定期的に実行されます。ただし、生成された未送信メールが
送信されるのは次回の定期受信時になるので、多少遅延はします。

 遅延しないで即座に送信したい場合は、マクロの最後に、例えば未送信メール
の生成されるアカウントが"テストアカウント"なら、

    if( dllfunc("GetFolderMailCount", "テストアカウント", "未送信")
      != 0 ) {
        #n = dllfunc("StartTransmitCustom", "テストアカウント:S");
    }

 と入れればいいかと思います。または、単純に

    #n = dllfunc("StartSendRemainAll");

 だけでもいいかもしれません。(テストしてないけども)

>>        if( $from == "xxxx@xxxxxx.co.jp" ) {
> の部分ですが、複数のアドレスに反応するためには、どの様に記述
> すればよいかを伝授して頂けますか?

    if( $from == "xxx1@xxxx.co.jp"
     || $from == "xxx2@xxxx.co.jp"
     || $from == "xxx3@xxxx.co.jp" ) {

 みたいに「||」で条件をくっつけていけばいいです。

[ ]
RE:47156 秀丸メールで自動返信をしたい(No.47160
siniti さん 14/12/11 17:58
 
秀まるお2様

> と入れればいいかと思います。または、単純に
>
>    #n = dllfunc("StartSendRemainAll");
>
> だけでもいいかもしれません。(テストしてないけども)

だいじょうぶでした。

>>>        if( $from == "xxxx@xxxxxx.co.jp" ) {
>> の部分ですが、複数のアドレスに反応するためには、どの様に記述
>> すればよいかを伝授して頂けますか?
>
>    if( $from == "xxx1@xxxx.co.jp"
>     || $from == "xxx2@xxxx.co.jp"
>     || $from == "xxx3@xxxx.co.jp" ) {
>
> みたいに「||」で条件をくっつけていけばいいです。

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


またまた、追加で質問です。
この自動返信をある時間帯でのみ反応できるようにできますか?
例えば、以下の時間帯のみ反応し、その他の時間帯では反応しないようにしたいです。

メール受信時刻が8:45〜12:15 および 13:00〜17:30 まで反応し、
それ以外の時間帯(12:16〜12:59および17:31〜8:44)は反応しないよう
にしたい。

上記のそれ以外の時間帯で定期受信を動かないようにできますか?

[ ]
RE:47160 秀丸メールで自動返信をしたい(No.47161
秀まるお2 さん 14/12/12 09:01
 
> この自動返信をある時間帯でのみ反応できるようにできますか?
> 例えば、以下の時間帯のみ反応し、その他の時間帯では反応しないようにしたいで
>す。

 方法はいくつかあるかと思いますが、分かりやすい例としては、「送受信の開
始直前」の自動起動マクロでやるやり方があると思います。

 マクロとしては、例えば

    loaddll "tkinfo.dll";
    if( dllfunc("GetTransmitCommandCode") != 1 ) {
        //定期受信でなければ何もしない
        endmacro;
    }
    $time = time;
    #time = val(leftstr($time,2)) * 100 + val(midstr($time,3,2));
    message str(#time);
    if( (#time >= 845 && #time <= 1215)
     || (#time >= 1300 && #time <= 1730) ) {
        //定期受信OK
    } else {
        #n = dllfunc("SetCancel", 1);    //定期受信をさせない
    }
    endmacro;

 みたいなマクロでいいと思います。

 これが一番シンプルかなぁと思います。

[ ]
RE:47161 秀丸メールで自動返信をしたい(No.47185
siniti さん 14/12/16 13:32
 
>秀まるお2様

> この自動返信をある時間帯でのみ反応できるようにできますか?
>> 例えば、以下の時間帯のみ反応し、その他の時間帯では反応しないようにしたい
>です。
>
> 方法はいくつかあるかと思いますが、分かりやすい例としては、「送受信の開
>始直前」の自動起動マクロでやるやり方があると思います。
>
> マクロとしては、例えば
>
> みたいなマクロでいいと思います。
>
> これが一番シンプルかなぁと思います。

期待通りの動きでした。
ありがとうございました。
助かりました。

[ ]
RE:47185 秀丸メールで自動返信をしたい(No.47186
秀まるお2 さん 14/12/16 13:48
 
 お気づきなんだと思いますが、

    message str(#time);

 これが余計でした。デバッグ目的で入れてたmessage文がそのまま入ってしま
ってました。失礼しました。

[ ]
RE:47186 秀丸メールで自動返信をしたい(No.47187
siniti さん 14/12/17 11:10
 
> お気づきなんだと思いますが、

はい、これは気が付いて削除しておりました。
わざわざありがとうございました。

[ ]
RE:47133 秀丸メールで自動返信をしたい(No.47188
siniti さん 14/12/17 11:15
 
秀まるお2様

度々で申し訳ありませんが、

> みたいな感じになります。上記の例は、あらかじめ「設定・テンプレート/署
>名の編集...」で「自動返信テンプレート」って名前のテンプレートを作成して
>おいてそれで返信する例になります。
>
> テンプレートの例としては、
>
>$(SetHeader,"Subject","【受付完了】 "+$(RootHeader,Subject))$-
>$(SetHeader,"Bcc","自分のメールアドレス")$-
>$(SetHeader,"Precedences","bulk")
> メールを受け取りました。
>
> みたいにしておけばいいんじゃないかと思います。

先にご提供(ご教授)頂きました情報で一つ、問題が発生しました。
(というか私が言い伝えていなかったためですが)
自動返信する際に、元のメールにToやCcがついている場合に、
元のメールの送信者(From)以外の人にもCcで上記の返信メールを自動で
起きりたかったのですが、どの様にすればよいでしょうか?
ご教授頂きたくよろしくお願いします。

[ ]
RE:47188 秀丸メールで自動返信をしたい(No.47189
秀まるお2 さん 14/12/17 11:49
 
> 自動返信する際に、元のメールにToやCcがついている場合に、
> 元のメールの送信者(From)以外の人にもCcで上記の返信メールを自動で
> 起きりたかったのですが、どの様にすればよいでしょうか?

        #n = dllfunc("MakeReplyCustom", "Single", "", "");

 の所を

        #n = dllfunc("MakeReplyCustom", "All", "", "");

 にすれば、「全員へ返信」になります。

 それで大丈夫だと思います。

[ ]
RE:47189 秀丸メールで自動返信をしたい(No.47190
siniti さん 14/12/17 12:36
 
>> 自動返信する際に、元のメールにToやCcがついている場合に、
>> 元のメールの送信者(From)以外の人にもCcで上記の返信メールを自動で
>> 送りたかったのですが、どの様にすればよいでしょうか?
>
>        #n = dllfunc("MakeReplyCustom", "All", "", "");
>
> にすれば、「全員へ返信」になります。
>
> それで大丈夫だと思います。

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


[ ]
RE:47161 秀丸メールで自動返信をしたい(No.47242
siniti さん 14/12/24 15:08
 
秀まるお2様

お世話になっております。

>「送受信の開始直前」の自動起動マクロでやるやり方があると思います。
>
> マクロとしては、例えば
>
>    loaddll "tkinfo.dll";
>    if( dllfunc("GetTransmitCommandCode") != 1 ) {
>        //定期受信でなければ何もしない
>        endmacro;
>    }
>    $time = time;
>    #time = val(leftstr($time,2)) * 100 + val(midstr($time,3,2));
>    message str(#time);
>    if( (#time >= 845 && #time <= 1215)
>     || (#time >= 1300 && #time <= 1730) ) {
>        //定期受信OK
>    } else {
>        #n = dllfunc("SetCancel", 1);    //定期受信をさせない
>    }
>    endmacro;
>
> みたいなマクロでいいと思います。
>
> これが一番シンプルかなぁと思います。

このマクロの動作で一つ考慮が漏れていましたので、どの様に
記述を追加すべきかをご教授頂きますようお願いします。

このマクロを動かす端末は、常時起動している端末で動作させたいので
以下の条件を追加したい。

平日のみ定期受信する。
平日とは、月曜日から金曜日で 且つ
祝祭日を除く
となりますが、祝日が関数などで取得できないのであれば、
マクロ内で記述(配列等で)出来ればOKです。

[ ]
RE:47242 秀丸メールで自動返信をしたい(No.47244
秀まるお2 さん 14/12/24 17:04
 
 作ってみたらできました。

 1つ裏技を使ってしまいました。祝日かどうかの判定は、実は秀丸メールの
プログラム用フォルダにある「Holiday.txt」ってファイルを使えばできます。
そのファイルを読み込んで、例えば今日の日付の"2014/12/24"に半角空白を1つ
付けて検索してヒットするかどうかで分かりますが、Holiday.txtファイルを読
み込むのに、普通だと、新規メールを起動してそこに読み込んで、みたいな面倒
な処理が必要になります。実はそんな面倒なことをしなくても、tkinfo.dllに
LoadStringFromFileって関数があって、それを使えばファイル内容を簡単に変数
に取り込めます。

 これを使ったマクロが以下のようになります。

--------------------------------------------------------------------
    loaddll "tkinfo.dll";
    if( dllfunc("GetTransmitCommandCode") != 1 ) {
        //定期受信でなければ何もしない
        endmacro;
    }
    $time = time;
    #time = val(leftstr($time,2)) * 100 + val(midstr($time,3,2));
    if( (#time >= 845 && #time <= 1215)
     || (#time >= 1300 && #time <= 1730) ) {
        //定期受信OK
    } else {
        #n = dllfunc("SetCancel", 1);    //定期受信をさせない
        endmacro;
    }

    //日付もチェック。
    //土日は受信しない。
    if( dayofweek == "土" || dayofweek == "日" ) {
        #n = dllfunc("SetCancel", 1);    //定期受信をさせない
        endmacro;
    }
    //祝日も受信しない
    $date = year + "/" + str(val(month)) + "/" + str(val(day)) + " ";
    $holiday = dllfuncstr("LoadStringFromFile"
               , "C:\\Program files\\HidemaruMail\\holiday.txt");
    if( strstr( $holiday, $date ) >= 0 ) {
        //祝日のはず
        #n = dllfunc("SetCancel", 1);    //定期受信をさせない
        endmacro;
    }
    endmacro;
--------------------------------------------------------------------

 上記マクロの"C:\\Program files\\HidemaruMail..."の部分は、例えば64bit
版のWindowsに32bit版の秀丸メールをインストールした場合なら、

               , "C:\\Program files (x86)\\HidemaruMail\\holiday.txt");

 のようにする必要があります。

 その辺だけ直せばそのままいけると思います。

 テストするには…、意図的にパソコンの時刻を祝日にしてみればいいかと思い
ますが、

    $date = year + "/" + str(val(month)) + "/" + str(val(day)) + " ";
    $date = input("日付入力", $date);

 みたいにして日付を毎回入力するようにマクロを書き換えてテストしてもいい
かと思います。

■補足:

 LoadStringFromFile関数は、テキストファイルの内容を64キロバイトまで読み
込み可能で、それを超えた分はカットされます。次のバージョンのヘルプから追
加させていただきます。

 他に、SaveStringToFileって関数もあります。

[ ]
RE:47190 秀丸メールで自動返信をしたい(No.47292
siniti さん 15/01/08 16:56
 
秀まるお2様

いつもお世話になっております。
先日、ご提供(ご教授頂きました、自動返信マクロですが、
一時(年末あたりまでは)動作していたのですが、最近動きが変になりました。

変な動きは、自動返信は動くのですが、「自動返信テンプレート」を
使用してくれないため、標準の返信エディタ画面が表示されて入力待ちと
なります。

何が原因でしょうか?

マクロを以下にに添付します。

    loaddll "tkinfo.dll";
    while( dllfunc("SelectRecvMail") ) {
        if( dllfuncstr("CurrentHeader","Precedences") == "bulk" ) {
            continue;
        }
        $from = dllfuncstr("SetEmailOnly", dllfuncstr("CurrentHeader","From
"));:
        if( $from == "testuser02@aaaa.bb.jp"
         || $from == "xxx3@xxxx.co.jp"
         || $from == "xxx3@xxxx.co.jp" ) {
         #n = dllfunc("MakeReplyCustom", "All", "", "");
         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
         #n = dllfunc("SendLater");
         #handle = hidemaruhandle(0);
         #n = dllfunc("SetMainWndTop");
         closehidemaruforced #handle;
        }
    }

    if( dllfunc("GetFolderMailCount", "testuser01", "未送信")
      != 0 ) {
        #n = dllfunc("StartTransmitCustom", "testuser01:S");
    }

[ ]
RE:47292 秀丸メールで自動返信をしたい(No.47293
秀まるお2 さん 15/01/08 17:14
 
 原因は僕もよく分からないので、とりあえず、message入れまくり作戦で原因
を探すってことでどうでしょうか。

 マクロの中にmessage分を入れまくります。例えば以下のようにします。

    loaddll "tkinfo.dll";
    while( dllfunc("SelectRecvMail") ) {
        if( dllfuncstr("CurrentHeader","Precedences") == "bulk" ) {
            message "bulkなので何もしません。";
            continue;
        }
        $from = dllfuncstr("SetEmailOnly", dllfuncstr("CurrentHeader","From
"));:
        message "$from = " + $from;
        if( $from == "testuser02@aaaa.bb.jp"
         || $from == "xxx3@xxxx.co.jp"
         || $from == "xxx3@xxxx.co.jp" ) {
         message "返信メール作成します。";
         #n = dllfunc("MakeReplyCustom", "All", "", "");
         message "テンプレート切り替えます。";
         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
         if( #n == 0 ) {
             message "テンプレート切り替え失敗しました";
         } else {
             message "テンプレート切り替えました。";
         }
         #n = dllfunc("SendLater");
         #handle = hidemaruhandle(0);
         #n = dllfunc("SetMainWndTop");
         closehidemaruforced #handle;
        } else {
            message "$fromが対象外なので何もしません";
        }
    }

    if( dllfunc("GetFolderMailCount", "testuser01", "未送信")
      != 0 ) {
        #n = dllfunc("StartTransmitCustom", "testuser01:S");
    }


 それでマクロ実行して、メッセージの表示を追っかけて何がおかしいのか探し
てみるって作戦でどうでしょうか。

 もしも"テンプレート切り替え失敗しました"が出るのなら、テンプレートが無
くなってるせいか、または名前が変更されてるか辺りじゃないかと思います。

[ ]
RE:47293 秀丸メールで自動返信をしたい(No.47301
siniti さん 15/01/09 13:04
 
秀まるお2様

大変お世話になっております。

> 原因は僕もよく分からないので、とりあえず、message入れまくり作戦で原因
>を探すってことでどうでしょうか。
                     :
>         message "テンプレート切り替えます。";
>         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
>         if( #n == 0 ) {
>             message "テンプレート切り替え失敗しました";
>         } else {
>             message "テンプレート切り替えました。";
>         }

> それでマクロ実行して、メッセージの表示を追っかけて何がおかしいのか探し
>てみるって作戦でどうでしょうか。
>
> もしも"テンプレート切り替え失敗しました"が出るのなら、テンプレートが無
>くなってるせいか、または名前が変更されてるか辺りじゃないかと思います。

私も、最初に上記の2点だろうと疑いましたが、テンプレートは
(「設定」-「テンプレート/署名の編集」-「返信メール用」の下に、
「自動返信テンプレート」が)存在するし、名前も変更されていませんでした。

しかし、上記のMessageの入れまくり作戦をやってみたら、
「テンプレート切り替え失敗しました」が表示されます。
→これは想定通りですが、なぜ
#n = dllfunc("SwitchTemplate", "自動返信テンプレート");
の実行で、#nが0以外となるんでしょうかねー?

#nの値が0以外で何が返ってきているかが気になりますが、
この#n の値を知って、何が原因かを特定できますか?
この#n の値を表示するにはどうすればよいでしょうか?

[ ]
RE:47301 秀丸メールで自動返信をしたい(No.47303
秀まるお2 さん 15/01/09 13:54
 
 とりあえず、

    loaddll "tkinfo.dll";
    #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
    if( #n == 0 ) {
        message "エラー";
    }

 みたいな簡単なマクロにして、それを何か返信メールのエディタ上で実行して
みるとか…。

 あと、マクロじゃなくて、返信メールのウィンドウ上でテンプレート変更を
メニューから選んでやってみてうまくかどうか試してみるとか。

 「自動返信テンプレート」とは別に、例えば「a」みたいな簡単な名前の返信
テンプレートを1つ作ってそれでどうか試してみるとか…。

 それでもダメでしたら、別のパソコンで試してみるとか。

------------------------------------------------

 ソースコード見直したら、SwitchTemplateが失敗するケースとしては…

 まず、編集できないエディタ・ウィンドウ上であるとダメです。

 テンプレートが見つからない場合はSwitchTemplate関数自体がエラーメッセー
ジを出すようです。

 他は…よく分かりません。(ソースコード見直した限りでは)

[ ]
RE:47303 秀丸メールで自動返信をしたい(No.47314
siniti さん 15/01/09 19:19
 
秀まるお2様

ご教授ありがとうございます。

> まず、編集できないエディタ・ウィンドウ上であるとダメです。

返信時に開くエディタは秀丸が開きます。

> テンプレートが見つからない場合はSwitchTemplate関数自体がエラーメッセー
>ジを出すようです。

>    loaddll "tkinfo.dll";
>    #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
>    if( #n == 0 ) {
>        message "エラー";
>    }
>

上記のマクロをメール一覧が表示されている状態で実行すると
「エラー」が表示されます。

また、ちなみに、テンプレート名を変更してテンプレートが見つからない場合にも
「エラー」が表示されます。

何か致命的な状態のようです。
何が考えられますか?

[ ]
RE:47314 秀丸メールで自動返信をしたい(No.47315
秀まるお2 さん 15/01/09 19:46
 
> 返信時に開くエディタは秀丸が開きます。

 「秀丸エディタが開く」でしょうか。

 秀丸メールの本体ウィンドウ上で何かメールを選択して「ファイル」メニュー
の「返信メール」コマンドを実行すると、秀丸エディタが起動する、とおっしゃ
ってますでしょうか。

 そういうことはありえないはずですけども。

 秀丸エディタが起動するのだとしたら、そこでマクロ実行してもうまく動くは
ずは無いです。

 秀丸メールのエディタ・ウィンドウが起動するのなら、そこには「設定」
メニューがあって、その中に「テンプレートの切り替え」ってサブメニューがあ
るので、そこからテンプレートを切り替えてみて、それが成功するかどうかだけ
でも試してみて欲しいです。

[ ]
RE:47315 秀丸メールで自動返信をしたい(No.47329
siniti さん 15/01/13 12:03
 
秀まるお2様

お世話になっております。

>> 返信時に開くエディタは秀丸が開きます。
>
> 「秀丸エディタが開く」でしょうか。
>
> 秀丸メールの本体ウィンドウ上で何かメールを選択して「ファイル」メニュー
>の「返信メール」コマンドを実行すると、秀丸エディタが起動する、とおっしゃっ
>てますでしょうか。
>
> そういうことはありえないはずですけども。

すみません。勘違いしておりました。
「秀丸メールのエディタ・ウィンドウ」の事です。
画面イメージが秀丸とよく似ていたので。

> 秀丸エディタが起動するのだとしたら、そこでマクロ実行してもうまく動くは
>ずは無いです。
>
> 秀丸メールのエディタ・ウィンドウが起動するのなら、そこには「設定」
>メニューがあって、その中に「テンプレートの切り替え」ってサブメニューがあ
>るので、そこからテンプレートを切り替えてみて、それが成功するかどうかだけ
>でも試してみて欲しいです。

切り替わります。


再度、確認したところ、下記の通りです。
やはり、先のテスト(1/9 13:54)の下記のマクロでは、手動でマクロを
起動したら「エラー」が表示されます。
 loaddll "tkinfo.dll";
    #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
    if( #n == 0 ) {
        message "エラー";
    }

ただし、以下のマクロを手動でマクロを起動したら切り替わります。
         message "返信メール作成します。";
         #n = dllfunc("MakeReplyCustom", "All", "", "");
         message "テンプレート切り替えます。";
         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
         if( #n == 0 ) {
            message "エラー";
         }

やはり、先のテスト(1/8 10:10)の下記のマクロではメール受信では
「切り換え失敗」します。
         message "返信メール作成します。";
         #n = dllfunc("MakeReplyCustom", "All", "", "");
         message "テンプレート切り替えます。";
         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
         if( #n == 0 ) {
             message "テンプレート切り替え失敗しました";
         } else {
             message "テンプレート切り替えました。";
         }

[ ]
RE:47329 秀丸メールで自動返信をしたい(No.47330
秀まるお2 さん 15/01/13 13:38
 
■1.メニューから選ぶ方法を試す

 とりあえず、マクロじゃなくて、「設定」メニューの「テンプレートの切り替
え」からテンプレートを切り替えることが可能かどうか、それだけ試して結果を
教えて欲しいです。

■2.別のテンプレートで試す

 返信メール用のテンプレートに、例えば「A」みたいなシンプルな名前のを1
つ作って、それに切り替えるテストをしてどうか。

    loaddll "tkinfo.dll";
    #n = dllfunc("SwitchTemplate", "A");
    if( #n == 0 ) {
        message "エラー";
    }

-----------------------結果回答フォーム--------------------
■1の結果:   ○成功  ○失敗
■2の結果:   ○成功  ○失敗
-----------------------------------------------------------

 成功か失敗かどちからに●を付けてお返事ください。

[ ]
RE:47330 秀丸メールで自動返信をしたい(No.47331
siniti さん 15/01/14 11:04
 
秀まるお2様

お世話になります。
結果は以下の通りです。

>■1.メニューから選ぶ方法を試す
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> 成功か失敗かどちからに●を付けてお返事ください。

■1の結果:   ●成功  ○失敗
■2の結果:   ○成功  ●失敗(「エラー」の表示)

テスト3
 上記の2の返信テンプレートで存在しないテンプレート名(例えばa)を
指定した結果
●失敗

テスト4
 上記2のマクロを下記のとおり変更して実行した結果
()
    loaddll "tkinfo.dll";
    #n = dllfunc("MakeReplyCustom", "All", "", "");
    message "テンプレート切り替えます。";
    #n = dllfunc("SwitchTemplate", "A");
    if( #n == 0 ) {
        message "エラー";
    }

「テンプレート切り替えます。」が表示された後で、
正常にテンプレート「A」に切り換えられた。
(件名や返信本文が意図したとおりに表示された)

テスト5
 上記テスト4のマクロのテンプレート名で存在しないテンプレートを指定(例えば
a)した結果

    loaddll "tkinfo.dll";
    #n = dllfunc("MakeReplyCustom", "All", "", "");
    message "テンプレート切り替えます。";
    #n = dllfunc("SwitchTemplate", "a");
    if( #n == 0 ) {
        message "エラー";
    }
「テンプレート切り替えます。」が表示された後で、
「SwitchTemplate/Switchsign関数で、指定されたテンプレート/署名が見つかりま
せんでした。」
が表示された。
その後で、
「エラー」が表示された。

[ ]
RE:47331 秀丸メールで自動返信をしたい(No.47332
秀まるお2 さん 15/01/14 11:40
 
 では、すみませんが以下のマクロを実行した結果どうなるか、もし差し支えな
ければここの会議室に書き込んでいただくか、またはそれが都合悪い場合は

  "maruo@mitene.or.jp"

 宛てにメールで送って欲しいです。

 それで原因が分かる可能性が高いような気がします。

    loaddll "tkinfo.dll";
    $dir = dllfuncstr("HomeDir");
    $tempfile = $dir + "$$$dirtemp$$$.$$$";
    #n = dllfunc("NewMail");
    $cmd = "cmd.exe /c dir \"" + $dir + "t_*.bin\" > \"" + $tempfile + "\"";
    runsync $cmd;
    gofiletop;
    beginsel;
    gofileend;
    delete;
    insertfile $tempfile;
    #n = dllfunc("Bypass_DeleteFile", $tempfile);
    #n = dllfunc("Bypass_SetForegroundWindow", hidemaruhandle(0));


注意点:
 "A"っていう名前の返信用テンプレートがたしかに存在して、

    #n = dllfunc("SwitchTemplate", "a");

 がたしかに失敗する前提で上記マクロを実行して欲しいです。


 これでも原因が分からない場合は、すみませんが次のβ版にて、エラーになる
原因をdump.txtに出力する作戦にさせていただきたいと思います。

[ ]
RE:47332 秀丸メールで自動返信をしたい(No.47333
siniti さん 15/01/14 13:51
 
秀まるお2様

お世話になっております。

> では、すみませんが以下のマクロを実行した結果どうなるか、もし差し支えな
>ければここの会議室に書き込んでいただくか、またはそれが都合悪い場合は

ご指定のマクロを実行した結果は、秀丸メール・エディタが表示され
下記の内容が表示されました。
よろしくお願いします。


 ドライブ D のボリューム ラベルは Data です
 ボリューム シリアル番号は A6AB-49DB です

 D:\TuruKameData のディレクトリ

2015/01/14  12:00               207 t_reply_A.bin
2015/01/09  16:19                73 t_reply_テンプレート.bin
2014/12/19  17:47               183 t_reply_自動返信テンプレート.bin
               3 個のファイル                 463 バイト
               0 個のディレクトリ  100,797,988,864 バイトの空き領域

[ ]
RE:47333 秀丸メールで自動返信をしたい(No.47334
秀まるお2 さん 15/01/14 14:16
 
 連絡いただいた結果によると、たしかにテンプレート用のファイルが存在して
るようで、だとすると、なぜそれでSwitchTemplateが失敗するのか、すみません
が原因が分からないです。

 ということですみませんが、SwitchTemplateが失敗するケースについて、とに
かく分かる情報をdump.txtに出力するようにして次のβ版をアップロードさせて
いただきます。

 少々お待ちください。

[ ]
RE:47334 秀丸メールで自動返信をしたい(No.47335
siniti さん 15/01/14 14:38
 
秀まるお2様

お世話になっております。

> ということですみませんが、SwitchTemplateが失敗するケースについて、とに
>かく分かる情報をdump.txtに出力するようにして次のβ版をアップロードさせて
>いただきます。
>
> 少々お待ちください。

お待ちします。
よろしくお願いします。

[ ]
RE:47335 秀丸メールで自動返信をしたい(No.47336
秀まるお2 さん 15/01/14 16:03
 
 すみません。dump.txtにいろいろ情報出力する処理を作りながらテストしてた
ら原因が分かったような気がします。

 実は、最近の秀丸メールで1つレベルダウンのバグが出てしまってるようで、
マクロ用のファイルがUnicode(UTF-16)で保存されてると、うまくいかないよ
うです。

 マクロをShift-JISで保存すれば大丈夫だと思います。一回Shift-JISで保存し
てテストしていただけますでしょうか。

[ ]
RE:47336 秀丸メールで自動返信をしたい(No.47337
siniti さん 15/01/14 17:08
 
秀まるお2様

お世話になっております。

> すみません。dump.txtにいろいろ情報出力する処理を作りながらテストしてた
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>てテストしていただけますでしょうか。

マクロを秀丸で開いて、「名前を付けて保存」で、「エンコードの種類」は、
「自動判定 - 日本語(Shift-JIS)」となっておりました。
ここで、明示的に「エンコードの種類」で、「日本語(Shift-JIS)」で保存してテス
トしました。

しかし、動作は同じでした。
47319の質問に対する結果で47331の内容は以下の通りでした。
■1の結果:○成功
■2の結果:●失敗(「エラー」の表示)

テスト3の結果:●失敗(「エラー」の表示)

テスト4の結果:○成功
「テンプレート切り替えます。」が表示された後で、
正常にテンプレート「A」に切り換えられた。
(件名や返信本文が意図したとおりに表示された)

テスト5の結果:○成功
「テンプレート切り替えます。」が表示された後で、
「SwitchTemplate/Switchsign関数で、指定されたテンプレート/署名が見つかりま
せんでした。」
が表示された。
その後で、
「エラー」が表示された。

以上、エンコードの指定は「Unicode(UTF-16)」では保存していなかったので
結果は同じでした。

> 実は、最近の秀丸メールで1つレベルダウンのバグが出てしまってるようで、

とありますが、申し遅れましたが、当方の環境は以下の通りです。
・OS:Windows7  32bit SP1 最新パッチ適用
・秀丸メール:V6.27 32bit

よろしくお願いします。

[ ]
RE:47337 秀丸メールで自動返信をしたい(No.47338
秀まるお2 さん 15/01/14 19:47
 
 いろいろお手数かけてすみません。今度こそ原因が分かったと思ったんですが、
秀丸メールのバージョンが6.27なら関係ありませんでした。

 というか、しいて言うなら秀丸メールのバージョンが古いせいで、何かバグが
あって、僕の手元のバージョンでは直ってるって可能性もあるかもしれません。
(改版履歴を探せば分かるかもしれませんが…)

 その前に、一応、dump.txtにいっぱい情報出力するバージョンを作ったので、
それに入れ替えてテストをお願いしたいです。

 最新βは今アップロードしました。

32bit版:
http://hide.maruo.co.jp/software/bin3/hmmail642b5_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin3/hmmail642b5_x64_signed.exe

 これをインストールして、秀丸メールの「全般的な設定・上級者向け・動作の
記録」の「秀丸メールの動作をdump.txtに記録する」をONにします。

 そして、

 「返信メール」

 コマンドを実行して、そこでマクロを実行します。

 マクロは、

    loaddll "tkinfo.dll";
    #n = dllfunc("SwitchTemplate", "A");

 でいいと思います。

 それを実行してエラーを再現させてから、秀丸エディタかメモ帳で、秀丸
メールのデータ用フォルダ配下の「dump.txt」ってファイルを開きます。そして
最後の方を見ます。

 そうすると、

18:54:25.038 (10672) tid=3132 EditorWnd:TKINFO 116
18:54:25.038 (7533) tid=3132 tkinfo 116
18:54:25.038 (8670) tid=3132 SwitchTemplate type=1 name=A root=1

 みたいな記録があって、その後、テンプレートに関する情報がいろいろ出て、最後に

18:54:25.054 (11040) tid=3132 MsgB2 SwitchTemplate/SwitchSign関数で、指定さ
れたテンプレート/署名が見つかりませんでした。

テンプレート名=エラーテンプレート
テンプレート/署名種類=1
18:54:26.361 (11069) tid=3132 msgB2 1,53
18:54:26.361 (10680) tid=3132 EditorWnd:TKINFO 116 return 00000000


 みたいなエラーメッセージの表示の記録が出てると思います。その辺まるごと
コピペしてここの会議室に書き込んで欲しいです。

 ということでどうでしょうか。

 もしかしたらV6.42β5に入れ替えていただくことで起きなくなるかもしれませ
ん。もしそうなった場合は、何らかのバグがあって、最新版では直ってるってこ
とになるかなぁと思います。

 すみませんがよろしくお願いします。

[ ]
RE:47338 秀丸メールで自動返信をしたい(No.47340
siniti さん 15/01/15 09:25
 
秀まるお2様

お世話になっております。

> いろいろお手数かけてすみません。今度こそ原因が分かったと思ったんですが、

V6.42β5の提供ありがとうございます。


> そして、
>
> 「返信メール」
>
> コマンドを実行して、そこでマクロを実行します。
>
> マクロは、
>
>    loaddll "tkinfo.dll";
>    #n = dllfunc("SwitchTemplate", "A");
>
> でいいと思います。

上記の内容の操作が不明でしたので、下記のとおり実行しました。
受信メールを選択した状態で、下記のマクロを実行しました。

    loaddll "tkinfo.dll";
    #n = dllfunc("MakeReplyCustom", "All", "", "");
    message "テンプレート切り替えます。";
    #n = dllfunc("SwitchTemplate", "a");
    if( #n == 0 ) {
        message "エラー";
    }

その結果が下記の通りです。
09:03:40.798 (10672) tid=5528 EditorWnd:TKINFO 116
09:03:40.798 (7533) tid=5528 tkinfo 116
09:03:40.798 (8670) tid=5528 SwitchTemplate type=1 name=A root=1
09:03:40.798 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_a.bin, a
ttr=00000020, size=207
09:03:40.798 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_自動返信
テンプレート.bin, attr=00000020, size=183
09:03:40.798 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_テンプ
レート.bin, attr=00000020, size=73
09:03:40.798 ( 108) tid=5528 Template list whildcard=D:\TuruKameData\t_reply
_*.*
09:03:40.798 ( 126) tid=5528 Template a, attr=00000020 size=207
09:03:40.798 ( 139) tid=5528 template duplicated
09:03:40.798 ( 126) tid=5528 Template テンプレート, attr=00000020 size=73
09:03:40.798 ( 139) tid=5528 template duplicated
09:03:40.798 ( 126) tid=5528 Template 自動返信テンプレート, attr=00000020 si
ze=183
09:03:40.798 ( 139) tid=5528 template duplicated
09:03:40.798 ( 267) tid=5528 Template list size=36
09:03:40.798 (8685) tid=5528 a
09:03:40.798 (8685) tid=5528 自動返信テンプレート
09:03:40.798 (8685) tid=5528 テンプレート
09:03:40.798 (11040) tid=5528 MsgB2 SwitchTemplate/SwitchSign関数で、指定さ
れたテンプレート/署名が見つかりませんでした。

テンプレート名=A
テンプレート/署名種類=1
09:03:45.209 (11069) tid=5528 msgB2 1,53
09:03:45.209 (10680) tid=5528 EditorWnd:TKINFO 116 return 00000000

この結果は、テンプレートが切り替わりませんでした。


更に、マクロで存在するテンプレートを指定した結果のdump.txtが
下記の通りです。

09:06:02.447 (10672) tid=5528 EditorWnd:TKINFO 116
09:06:02.447 (7533) tid=5528 tkinfo 116
09:06:02.447 (8670) tid=5528 SwitchTemplate type=1 name=A root=1
09:06:02.447 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_A.bin, a
ttr=00000020, size=207
09:06:02.447 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_自動返信
テンプレート.bin, attr=00000020, size=183
09:06:02.447 (  73) tid=5528 Template exist D:\TuruKameData\t_reply_テンプ
レート.bin, attr=00000020, size=73
09:06:02.447 ( 108) tid=5528 Template list whildcard=D:\TuruKameData\t_reply
_*.*
09:06:02.463 ( 126) tid=5528 Template A, attr=00000020 size=207
09:06:02.463 ( 139) tid=5528 template duplicated
09:06:02.463 ( 126) tid=5528 Template テンプレート, attr=00000020 size=73
09:06:02.463 ( 139) tid=5528 template duplicated
09:06:02.463 ( 126) tid=5528 Template 自動返信テンプレート, attr=00000020 si
ze=183
09:06:02.463 ( 139) tid=5528 template duplicated
09:06:02.463 ( 267) tid=5528 Template list size=36
09:06:02.463 (8685) tid=5528 A
09:06:02.463 (8694) tid=5528 Template found cmd=46002
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 3
09:06:02.463 (7533) tid=5528 tkinfo 3
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 3 return FFFFFFFF
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 1
09:06:02.463 (7533) tid=5528 tkinfo 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 1 return 07235150
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 86
09:06:02.463 (7533) tid=5528 tkinfo 86
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 86 return 006FFBE0
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 1
09:06:02.463 (7533) tid=5528 tkinfo 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 1 return 07235150
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 43
09:06:02.463 (7533) tid=5528 tkinfo 43
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 43 return 00000001
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 1
09:06:02.463 (7533) tid=5528 tkinfo 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 1 return 07235150
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 99
09:06:02.463 (7533) tid=5528 tkinfo 99
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 99 return 006FFBE0
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 1
09:06:02.463 (7533) tid=5528 tkinfo 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 1 return 07235150
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 1
09:06:02.463 (7533) tid=5528 tkinfo 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 1 return 07235150
09:06:02.463 (10672) tid=5528 EditorWnd:TKINFO 86
09:06:02.463 (7533) tid=5528 tkinfo 86
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 86 return 006FFBE0
09:06:02.463 (34510) tid=5528 SwitchTemplate done
09:06:02.463 (8697) tid=5528 SwitchTempalte return 1
09:06:02.463 (10680) tid=5528 EditorWnd:TKINFO 116 return 00000001

この結果は、テンプレートが切り替わりました。

ご確認をよろしくお願いします。

[ ]
RE:47340 秀丸メールで自動返信をしたい(No.47341
秀まるお2 さん 15/01/15 09:39
 
 "a"ってテンプレートがある状態で、"A"ってテンプレート名を指定すると失敗する。

 けど、

 "A"ってテンプレートがある状態で、"A"ってテンプレート名を指定すると成功する。

 ということでいいですよね。

 で、つまり、(大文字/小文字の区別も含めて)正しいテンプレート名を指定
すれば、SwitchTemplateは成功すると…。

 なら、つまり、そもそも今回問題となっていた「自動返信テンプレート」の方
も、正しいテンプレート名さえ指定すれば成功すると思うのですが、相変わらず
ダメでしょうか。

 最終的に「このマクロが動けばいい」ってマクロを一回動かしてみて、成功す
るかどうか試してみて欲しいです。それでまだ失敗するなら、そのときのdump.
txtをまた書き込んでいただければ、原因がお返事できるかと思います。

 よろしくお願いします。

[ ]
RE:47341 秀丸メールで自動返信をしたい(No.47342
siniti さん 15/01/15 12:56
 
秀まるお2様

お世話になっております。

> "a"ってテンプレートがある状態で、"A"ってテンプレート名を指定すると失敗する。
>
> けど、
>
> "A"ってテンプレートがある状態で、"A"ってテンプレート名を指定すると成功する。
>
> ということでいいですよね。

テストマクロでは、そうです。

> で、つまり、(大文字/小文字の区別も含めて)正しいテンプレート名を指定
>すれば、SwitchTemplateは成功すると…。
>
> なら、つまり、そもそも今回問題となっていた「自動返信テンプレート」の方
>も、正しいテンプレート名さえ指定すれば成功すると思うのですが、相変わらず
>ダメでしょうか。
>
> 最終的に「このマクロが動けばいい」ってマクロを一回動かしてみて、成功す
>るかどうか試してみて欲しいです。それでまだ失敗するなら、そのときのdump.
>txtをまた書き込んでいただければ、原因がお返事できるかと思います。
>
> よろしくお願いします。

以下のマクロ「テスト受付完了」を自動起動の受信が一段落した時に
指定しました。
    loaddll "tkinfo.dll";
    while( dllfunc("SelectRecvMail") ) {
        if( dllfuncstr("CurrentHeader","Precedences") == "bulk" ) {
            continue;
        }
        $from = dllfuncstr("SetEmailOnly", dllfuncstr("CurrentHeader","From
"));:
         #n = dllfunc("MakeReplyCustom", "All", "", "");
         #n = dllfunc("SwitchTemplate", "自動返信テンプレート");
         message "テンプレート切り替えます。";
         if( #n == 0 ) {
             message "テンプレート切り替え失敗しました";
         } else {
             message "テンプレート切り替えました。";
         }
         #n = dllfunc("SendLater");
         #handle = hidemaruhandle(0);
         #n = dllfunc("SetMainWndTop");
         closehidemaruforced #handle;
    }

    if( dllfunc("GetFolderMailCount", "testuser01", "未送信")
      != 0 ) {
        #n = dllfunc("StartTransmitCustom", "testuser01:S");
    }

これで、メールを受信したときの画面の動きは、以下の通りです。
1)メール受信
2)「テンプレート切り替えます。」が表示
3)「テンプレート切り替え失敗しました」が表示
4)秀丸メールエディタで表示されるメールは期待したテンプレートでは
 なく、標準(?)のテンプレートで表示される。

以下がdump.txtが以下です。
12:43:10.635 (7594) 接続完了
12:43:10.635 R +OK POP3 server ready
12:43:10.635 (7594) ユーザーアカウントを送信
12:43:10.635 S USER testuser01
12:43:10.635 R +OK Password required for testuser01
12:43:10.635 (7594) パスワードを送信
12:43:10.635 S PASS ****
12:43:10.682 R +OK testuser01's maildrop has 279 messages (2686044 octets)
12:43:10.682 (7594) メール一覧を取得中
12:43:10.682 S STAT
12:43:10.682 R +OK 279 2686044
12:43:10.682 S LIST
12:43:10.682 R +OK 279 messages (2686044 octets)
12:43:10.697 (7594) メール一覧を取得中(38%)
12:43:10.697 (7594) メール一覧を取得中(50%)
12:43:10.697 R ...(2767バイト)
12:43:10.697 S UIDL
12:43:10.697 R +OK unique-id listing follows
12:43:10.697 (7594) メール一覧を取得中(70%)
12:43:10.697 (7594) メール一覧を取得中(100%)
12:43:10.697 R ...(15519バイト)
12:43:10.697 (6595) will Recv_UpdateRemoteMailAtStartRetr
12:43:10.697 (6662) done Recv_UpdateRemoteMailAtStartRetr
12:43:10.697 (7594) 0 / 1 済み (0.0K / 4Kバイト)
12:43:10.697 S RETR 279
12:43:10.697 R +OK 2254 octets
12:43:10.713 (7594) 0 / 1 済み (0.0K / 4Kバイト)
12:43:10.713 R ...(2254バイト)
12:43:10.713 (7594) 1 / 1 済み (2.2K / 4Kバイト)
12:43:10.729 (4913) filterlog.txt nolog
12:43:10.729 (14668) Added.bin testuser01/6/ file=受信ログ201501.txt offset=
524288
12:43:10.729 (14679) added.bin done
I 保存済: UIDL=201501150341.JBEAAAAAAqEJ/QABYQABaJjlFfxU@twgsr001
12:43:10.729 (3491) サーバー上に残す
12:43:10.729 S QUIT
12:43:10.729 (10109) Updating Remotemail 0, 0
12:43:10.760 (5737) Appended testuser01/0/ file=受信201501.txt offset1=97698
 offset2=97696 size=2283
12:43:10.760 (9935) メール総数=873 / 最近の分=87 / 未読=1 / マーク=0
12:43:10.760 (5737) Appended testuser01/11/ file=Remote20150115.txt offset1=
20228 offset2=20226 size=2383
12:43:10.760 R +OK testuser01 POP3 server signing off
12:43:10.760 (9952) tid=3484 ThreadExit 3484
12:43:10.775 (1748) Peek socket
12:43:10.775 (8357) IDTIMER_SOCKET_END received
12:43:10.775 (8419) IDTIMER_TRANS_START post
12:43:10.775 (8096) IDTIMER_TRANS_START kill
12:43:10.775 (7594) 終了
12:43:10.775 (9937) -
12:43:10.775 (8246) IDTIMER_TRANS_END set
12:43:11.633 (8353) IDTIMER_TRANS_END kill
12:43:11.633 ( 208) EndSilentDialog()
12:43:11.633 (8519) TransDlgProc() WM_DESTROY
12:43:11.633 ( 190) SilentDialogBox() exit
12:43:11.633 (9202) ProcessTransmitSub() ModelessDialog, TransDlgProc exit
12:43:11.633 (2801) RestoreTransmitTaskbarIcon()
12:43:11.633 (2498) SetReceivedTaskbarIcon 0
12:43:11.633 (2584) 本体アイコンを戻します。
12:43:11.633 (9277) fSetReceivedIcon != 0
12:43:11.633 (2498) SetReceivedTaskbarIcon 1
12:43:11.633 (2503) 本体がアクティブなのでReceivedにしません。
12:43:11.633 (2584) 本体アイコンを戻します。
12:43:11.633 (9935)  1通のメールを受信しました。
12:43:11.633 (9346) ProcessTransmitSub() exit
12:43:11.633 (10527) FreePatrol
12:43:11.633 (11392) LeaveTrans()
12:43:11.665 (10989) AutoDown exit
12:43:11.665 (19801) StartAutoDownTimer()
12:43:11.665 (19809) StartAutoDownTimer() set
12:43:11.665 (19423) 40375 ret 1
12:43:11.665 (11614) ExecMacroFile テスト受付完了.mac
12:43:11.665 (11657) Independent
12:43:11.665 (   0) ExecCommandMacroSub テスト受付完了.mac
12:43:11.665 (10382) FrameWnd:TKINFO 21
12:43:11.665 (3166) TKINFO 21
12:43:11.665 (3166) TKINFO 23
12:43:11.665 (3798) MAILFLAG_HOT off
12:43:11.665 (12629) SetView pTitle=002A2A5C cb=2283 off=97698
12:43:11.665 (2927) SetText at pHidemaruView
12:43:11.665 (2965) cmdReasonCreated=open
12:43:11.680 (13288) fDontProcessAnyCommand = FALSE
12:43:11.680 (10385) FrameWnd:TKINFO 21 return 00000001
12:43:11.680 (10382) FrameWnd:TKINFO 3
12:43:11.680 (3166) TKINFO 3
12:43:11.680 (7533) tkinfo 3
12:43:11.680 (10385) FrameWnd:TKINFO 3 return FFFFFFFF
12:43:11.680 (10382) FrameWnd:TKINFO 3
12:43:11.680 (3166) TKINFO 3
12:43:11.680 (7533) tkinfo 3
12:43:11.680 (10385) FrameWnd:TKINFO 3 return 00000023
12:43:11.680 (10382) FrameWnd:TKINFO 12
12:43:11.680 (3166) TKINFO 12
12:43:11.680 (23425) will account load
12:43:11.680 (23427) will Override
12:43:11.680 (23496) will template
12:43:11.680 (23531) will reply-list
12:43:11.680 (27789) CreateThreadAndViewFrame
12:43:11.680 (28016) MuteOther(0)
12:43:11.680 (31754) StartThread tid=5528
12:43:11.680 (27147) tid=5528 ThreadFunc
12:43:11.680 ( 340) tid=5528 Monitor: 0,0,2560,1024 multi
12:43:11.680 (27257) tid=5528 ViewFrame created 00170A3E
12:43:11.680 (27277) tid=5528 HmCreate
12:43:11.680 (   0) tid=5528 call WinMainSub
12:43:11.680 (   0) tid=5528 FrameWndProc: WM_CREATE
12:43:11.680 (   0) tid=5528 ClientWndProc: WM_CREATE
12:43:11.680 (30192) tid=5528 TEXTS.New() passed fRef OK
12:43:11.680 (   0) tid=5528 return WinMainSub
12:43:11.680 (27281) tid=5528 HmCreate return
12:43:11.680 (12000) tid=5528 InitOuterHidemaru
12:43:11.680 (10672) tid=5528 EditorWnd:TKINFO 3
12:43:11.680 (7533) tid=5528 tkinfo 3
12:43:11.680 (10680) tid=5528 EditorWnd:TKINFO 3 return 00000022
12:43:11.680 (10672) tid=5528 EditorWnd:TKINFO 1
12:43:11.680 (7533) tid=5528 tkinfo 1
12:43:11.680 (10680) tid=5528 EditorWnd:TKINFO 1 return 072DABE8
12:43:11.680 (10672) tid=5528 EditorWnd:TKINFO 86
12:43:11.680 (7533) tid=5528 tkinfo 86
12:43:11.680 (10680) tid=5528 EditorWnd:TKINFO 86 return 006FFBE0
12:43:11.696 (2931) tid=5528 SetText at editor
12:43:11.696 (27874) CreateThreadAndViewFrame: event2
12:43:11.696 (14210) tid=5528 SetForegroundTopWindow 00170A3E
12:43:11.696 (27402) tid=5528 ParentPlaying
12:43:11.696 (27840) CreateThreadAndViewFrame: waiting hevent OK
12:43:11.696 (27934) CreateThreadAndViewFrame() normal exit
12:43:11.696 (14210) SetForegroundTopWindow 00170A3E
12:43:11.696 (28290) ReleaseMuteOther()
12:43:11.696 (24175) Check: root=1 dwRootID=1205438C cmdReasonCreated=40019
folpaRoot.iFolder=0
12:43:11.696 (27411) tid=5528 Restart
12:43:11.696 (24177) 返信 Re: 自動返信テスト12:40発信 / 笠松 新一...(2人)
12:43:11.696 (27402) tid=5528 ParentPlaying
12:43:11.696 (10385) FrameWnd:TKINFO 12 return 00000001
12:43:11.696 (10382) FrameWnd:TKINFO 116
12:43:11.696 (3166) TKINFO 116
12:43:11.696 (7533) tkinfo 116
12:43:11.696 (8645) SwitchTemplate failed: !fEditable
12:43:11.696 (10385) FrameWnd:TKINFO 116 return 00000000
12:43:11.696 (27411) tid=5528 Restart
12:43:11.696 (27402) tid=5528 ParentPlaying
12:43:11.711 (27411) tid=5528 Restart
12:43:11.711 (27402) tid=5528 ParentPlaying
12:43:11.711 (27411) tid=5528 Restart
12:43:11.711 (27402) tid=5528 ParentPlaying
12:43:12.187 (27440) tid=5528 StartMessageLoop
12:43:18.118 (10444) WM_TURUKAME_SETFOREGROUND
12:43:18.118 (14207) SetForegroundTopWindow hwndFrame
12:43:18.118 (10382) FrameWnd:TKINFO 21
12:43:18.118 (3166) TKINFO 21
12:43:18.118 (3166) TKINFO 23
12:43:18.118 (10385) FrameWnd:TKINFO 21 return 00000000
12:43:18.118 (10382) FrameWnd:TKINFO 139
12:43:18.118 (3166) TKINFO 139
12:43:18.118 (10385) FrameWnd:TKINFO 139 return 00000000
12:43:18.118 (   0) CDdesub::Disconnect
12:43:18.118 (   0) CDdesub::Disconnect nothing to do
12:43:18.118 (11701) leave
12:43:19.148 (9935) メール総数=873 / 最近の分=87 / 未読=0 / マーク=0
12:43:20.162 (9935)  1通のメールを受信しました。
12:43:23.079 (20535) tid=5528 ProcessFrameClose()
12:43:23.079 (20592) tid=5528 Not Updated
12:43:23.079 (13921) tid=5528 DestroyWindowします
12:43:23.079 (13954) tid=5528 will Stock
12:43:23.079 (9914) tid=5528 WM_DESTROY
12:43:23.079 (9922) tid=5528 ImeをOFFにしました
12:43:23.079 (25058) tid=5528 DeleteAttachFile(): deleting current attach list
12:43:23.079 (7761) tid=5528 PostQuitMessageSub
12:43:23.110 (14020) tid=5528 DestroyWindowせずStockしました
12:43:23.110 (20611) tid=5528 return TRUE
12:43:23.110 (27738) tid=5528 Hidemaru Message-loop exit
12:43:23.126 (9138) HIDEMARUDELETED
12:43:23.126 (1930) IsProcessExitable: ShowFrame
12:43:25.123 (9804) IDTIMER_CHECK_POSTQUIT
12:43:25.123 (1930) IsProcessExitable: ShowFrame
12:43:27.728 (9326) syscommand 0xF095
12:43:27.728 (9412) will DefWindowProc
12:43:29.116 (9416) DefWindowProc done nRet = 00000000
12:43:29.116 (17619) Cmd 40017

[ ]
RE:47342 秀丸メールで自動返信をしたい(No.47343
秀まるお2 さん 15/01/15 14:12
 
 取っていただいたdump.txtによると、MakeReplyCustomで返信メールを起動し
たにも関わらず、なぜかマクロがそのエディタ上じゃなくて、秀丸メール本体
ウィンドウ上で実行が継続されてしまってるようです。秀丸メール本体
ウィンドウ上でSwitchTemplateが呼び出されてるがために、テンプレート切り替
えも失敗してるようです。

 ということで、そこの部分、つまり、マクロ実行がうまくエディタ・
ウィンドウに移動してないことが根本原因のようでして、それ自体がバグなのか
もしれません。

 SwitchTempalteにばっかり頭が行ってて、そこまで頭が回りませんでした。大
変失礼しました。

 再現テストをするなど、もうちょっと調べてからお返事させていただきます。

[ ]
RE:47343 秀丸メールで自動返信をしたい(No.47347
秀まるお2 さん 15/01/15 23:35
 
 調べてみたんですが、はっきり原因が分からずでして…。

 V6.42β6をアップロードしたので、すみませんがそれに入れ替えてまたdump.
txt取って書き込んで欲しいです。今回、「MakeReplyCustom」の時にマクロの実
行をエディタ・ウィンドウに移動させる関係の処理で、いろいろdump.txtに出力
するようにしました。

32bit版:
http://hide.maruo.co.jp/software/bin3/hmmail642b6_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin3/hmmail642b6_x64_signed.exe

 成功事例だと、こんな感じのログが出る手はずになります。

 すみませんがまたお願いします。

--------成功事例-------------
23:30:34.414 (27883) CreateThreadAndViewFrame: event2
23:30:34.445 (14216) tid=5020 SetForegroundTopWindow 00040630==HidemaruFrame
23:30:34.445 (14268) tid=5020 SetLastForeground
23:30:35.069 (27411) tid=5020 ParentPlaying
23:30:35.069 (27849) CreateThreadAndViewFrame: waiting hevent OK
23:30:35.069 (27943) CreateThreadAndViewFrame() normal exit
23:30:35.069 (14216) SetForegroundTopWindow 00040630==HidemaruFrame
23:30:35.069 (14268) SetLastForeground
23:30:35.069 (28299) ReleaseMuteOther()
23:30:35.069 (24184) Check: root=1 dwRootID=064C2554 cmdReasonCreated=40019
folpaRoot.iFolder=5
23:30:35.069 (27420) tid=5020 Restart
23:30:35.069 (27411) tid=5020 ParentPlaying
23:30:35.069 (24186) 返信 Re: hidesoft.8:47346| RE 47345 アカウントの受信フ
ォルダを1つにしたい / hidesoft.8maruo.co.jpxxx...(2人)
23:30:35.069 (10387) FrameWnd:TKINFO 12 return 00000001
23:30:35.069 (7671) MustSwitchMacroExec LastForeground=00040630
23:30:35.069 (25861) CheckActiveChanged fMust=1, hwndLast=00040630
23:30:35.069 (   0) SwitchMacro dest-tid=5020
23:30:35.069 (   0) tid=5020 ReceiveSwitchMacro
23:30:35.069 (   0) CDdesub::Disconnect
23:30:35.069 (   0) CDdesub::Disconnect nothing to do
23:30:35.069 (19425) 40092 ret 1
23:30:35.085 (10681) tid=5020 EditorWnd:TKINFO 116
23:30:35.085 (7539) tid=5020 tkinfo 116
23:30:35.085 (8679) tid=5020 SwitchTemplate type=1 name=自動返信テンプレート
 root=1

[ ]
RE:47347 秀丸メールで自動返信をしたい(No.47375
siniti さん 15/01/19 12:56
 
秀まるお2様

お世話になっています。
1/16はお休みをいただいておりまして返事が遅くなりました。
結果のdump.txtは下記の通りです。よろしくお願いします。

12:29:22.378 (7594) メール一覧を取得中
12:29:22.378 S STAT
12:29:22.378 R +OK 292 2947216
12:29:22.378 S LIST
12:29:22.394 R +OK 292 messages (2947216 octets)
12:29:22.394 (7594) メール一覧を取得中(1%)
12:29:22.394 (7594) メール一覧を取得中(34%)
12:29:22.394 (7594) メール一覧を取得中(42%)
12:29:22.394 (7594) メール一覧を取得中(47%)
12:29:22.394 (7594) メール一覧を取得中(50%)
12:29:22.394 R ...(2904バイト)
12:29:22.394 S UIDL
12:29:22.394 R +OK unique-id listing follows
12:29:22.394 (7594) メール一覧を取得中(50%)
12:29:22.394 (7594) メール一覧を取得中(69%)
12:29:22.394 (7594) メール一覧を取得中(77%)
12:29:22.394 (7594) メール一覧を取得中(81%)
12:29:22.394 (7594) メール一覧を取得中(88%)
12:29:22.394 (7594) メール一覧を取得中(92%)
12:29:22.394 (7594) メール一覧を取得中(96%)
12:29:22.394 (7594) メール一覧を取得中(100%)
12:29:22.394 R ...(16247バイト)
12:29:22.394 (6595) will Recv_UpdateRemoteMailAtStartRetr
12:29:22.394 (6662) done Recv_UpdateRemoteMailAtStartRetr
12:29:22.394 (7594) 0 / 1 済み (0.0K / 4Kバイト)
12:29:22.394 S RETR 292
12:29:22.394 R +OK 2615 octets
12:29:22.394 (7594) 0 / 1 済み (0.0K / 4Kバイト)
12:29:22.394 R ...(2615バイト)
12:29:22.394 (7594) 1 / 1 済み (2.5K / 4Kバイト)
12:29:22.441 (4913) filterlog.txt nolog
12:29:22.456 (14668) Added.bin testuser01/6/ file=受信ログ201501.txt offset=
696060
12:29:22.456 (14679) added.bin done
I 保存済: UIDL=201501190328.JBEAAAAAAqYJXAABYQABaJjlFfxU@twgsr001
12:29:22.456 (3491) サーバー上に残す
12:29:22.456 S QUIT
12:29:22.456 (10109) Updating Remotemail 0, 0
12:29:22.487 (5737) Appended testuser01/0/ file=受信201501.txt offset1=11125
4 offset2=111252 size=2590
12:29:22.487 (9935) メール総数=880 / 最近の分=51 / 未読=1 / マーク=0
12:29:22.503 (5737) Appended testuser01/11/ file=Remote20150119.txt offset1=
34565 offset2=34563 size=2370
12:29:22.503 R +OK testuser01 POP3 server signing off
12:29:22.503 (9952) tid=996 ThreadExit 996
12:29:22.503 (1748) Peek socket
12:29:22.503 (8357) IDTIMER_SOCKET_END received
12:29:22.503 (8419) IDTIMER_TRANS_START post
12:29:22.503 (8096) IDTIMER_TRANS_START kill
12:29:22.503 (7594) 終了
12:29:22.503 (9937) -
12:29:22.503 (8246) IDTIMER_TRANS_END set
12:29:23.315 (8353) IDTIMER_TRANS_END kill
12:29:23.315 ( 208) EndSilentDialog()
12:29:23.315 (8519) TransDlgProc() WM_DESTROY
12:29:23.315 ( 190) SilentDialogBox() exit
12:29:23.315 (9202) ProcessTransmitSub() ModelessDialog, TransDlgProc exit
12:29:23.315 (2801) RestoreTransmitTaskbarIcon()
12:29:23.315 (2498) SetReceivedTaskbarIcon 0
12:29:23.315 (2584) 本体アイコンを戻します。
12:29:23.315 (9277) fSetReceivedIcon != 0
12:29:23.315 (2498) SetReceivedTaskbarIcon 1
12:29:23.315 (2503) 本体がアクティブなのでReceivedにしません。
12:29:23.315 (2584) 本体アイコンを戻します。
12:29:23.315 (9935)  1通のメールを受信しました。
12:29:23.315 (9346) ProcessTransmitSub() exit
12:29:23.315 (10527) FreePatrol
12:29:23.315 (11392) LeaveTrans()
12:29:23.346 (10989) AutoDown exit
12:29:23.346 (19803) StartAutoDownTimer()
12:29:23.346 (19811) StartAutoDownTimer() set
12:29:23.346 (19425) 40375 ret 1
12:29:23.346 (11623) ExecMacroFile テスト受付完了.mac
12:29:23.346 (11666) Independent
12:29:23.346 (   0) ExecCommandMacroSub テスト受付完了.mac
12:29:23.346 (10384) FrameWnd:TKINFO 21
12:29:23.346 (3166) TKINFO 21
12:29:23.346 (3166) TKINFO 23
12:29:23.346 (3800) MAILFLAG_HOT off
12:29:23.346 (12629) SetView pTitle=00235F08 cb=2590 off=111254
12:29:23.346 (2927) SetText at pHidemaruView
12:29:23.346 (2965) cmdReasonCreated=open
12:29:23.346 (13288) fDontProcessAnyCommand = FALSE
12:29:23.361 (10387) FrameWnd:TKINFO 21 return 00000001
12:29:23.361 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:23.361 (10384) FrameWnd:TKINFO 3
12:29:23.361 (3166) TKINFO 3
12:29:23.361 (7539) tkinfo 3
12:29:23.361 (10387) FrameWnd:TKINFO 3 return FFFFFFFF
12:29:23.361 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:23.361 (10384) FrameWnd:TKINFO 3
12:29:23.361 (3166) TKINFO 3
12:29:23.361 (7539) tkinfo 3
12:29:23.361 (10387) FrameWnd:TKINFO 3 return 00000023
12:29:23.361 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:23.361 (7240) CallDllFunc: MustSwitchMacroExec
12:29:23.361 (10384) FrameWnd:TKINFO 12
12:29:23.361 (3166) TKINFO 12
12:29:23.361 (3534) TKINFOBACK_DOCOMMAND 40019
12:29:23.361 (23434) will account load
12:29:23.361 (23436) will Override
12:29:23.361 (23505) will template
12:29:23.361 (23540) will reply-list
12:29:23.361 (27798) CreateThreadAndViewFrame
12:29:23.361 (28025) MuteOther(0)
12:29:23.361 (31763) StartThread tid=5560
12:29:23.361 (27156) tid=5560 ThreadFunc
12:29:23.361 ( 340) tid=5560 Monitor: 0,0,2560,1024 multi
12:29:23.361 (27266) tid=5560 ViewFrame created 000F0AEA
12:29:23.361 (27286) tid=5560 HmCreate
12:29:23.361 (   0) tid=5560 call WinMainSub
12:29:23.361 (   0) tid=5560 FrameWndProc: WM_CREATE
12:29:23.361 (   0) tid=5560 ClientWndProc: WM_CREATE
12:29:23.361 (30192) tid=5560 TEXTS.New() passed fRef OK
12:29:23.361 (   0) tid=5560 return WinMainSub
12:29:23.361 (27290) tid=5560 HmCreate return
12:29:23.361 (12009) tid=5560 InitOuterHidemaru
12:29:23.361 (10681) tid=5560 EditorWnd:TKINFO 3
12:29:23.361 (7539) tid=5560 tkinfo 3
12:29:23.361 (10689) tid=5560 EditorWnd:TKINFO 3 return 00000022
12:29:23.361 (10681) tid=5560 EditorWnd:TKINFO 1
12:29:23.361 (7539) tid=5560 tkinfo 1
12:29:23.361 (10689) tid=5560 EditorWnd:TKINFO 1 return 080DAD00
12:29:23.361 (10681) tid=5560 EditorWnd:TKINFO 86
12:29:23.361 (7539) tid=5560 tkinfo 86
12:29:23.361 (10689) tid=5560 EditorWnd:TKINFO 86 return 006FFB30
12:29:23.361 (2931) tid=5560 SetText at editor
12:29:23.361 (27883) CreateThreadAndViewFrame: event2
12:29:23.377 (14216) tid=5560 SetForegroundTopWindow 000F0AEA==HidemaruFrame
12:29:23.377 (14268) tid=5560 SetLastForeground
12:29:23.377 (27411) tid=5560 ParentPlaying
12:29:23.377 (27849) CreateThreadAndViewFrame: waiting hevent OK
12:29:23.377 (27943) CreateThreadAndViewFrame() normal exit
12:29:23.377 (14216) SetForegroundTopWindow 000F0AEA==HidemaruFrame
12:29:23.377 (14268) SetLastForeground
12:29:23.377 (28299) ReleaseMuteOther()
12:29:23.377 (24184) Check: root=1 dwRootID=9A011395 cmdReasonCreated=40019
folpaRoot.iFolder=0
12:29:23.377 (24186) 返信 Re: 自動返信テスト12:27発信 / 新一...(2人)
12:29:23.377 (27420) tid=5560 Restart
12:29:23.377 (10387) FrameWnd:TKINFO 12 return 00000001
12:29:23.377 (7671) MustSwitchMacroExec LastForeground=000F0AEA
12:29:23.377 (25861) CheckActiveChanged fMust=1, hwndLast=000F0AEA
12:29:23.377 (28773) SwitchmacroExecution failed pfMacroExecuting
12:29:23.377 (25873) MustSwitchMacroExec failed
12:29:23.377 (10384) FrameWnd:TKINFO 116
12:29:23.377 (3166) TKINFO 116
12:29:23.377 (7539) tkinfo 116
12:29:23.377 (8654) SwitchTemplate failed: !fEditable
12:29:23.377 (10387) FrameWnd:TKINFO 116 return 00000000
12:29:23.377 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:23.377 (27411) tid=5560 ParentPlaying
12:29:23.393 (27420) tid=5560 Restart
12:29:23.393 (27411) tid=5560 ParentPlaying
12:29:23.408 (27420) tid=5560 Restart
12:29:23.408 (27411) tid=5560 ParentPlaying
12:29:23.872 (27449) tid=5560 StartMessageLoop
12:29:27.303 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:27.303 (10446) WM_TURUKAME_SETFOREGROUND
12:29:27.303 (14210) SetForegroundTopWindow hwndFrame
12:29:27.303 (14268) SetLastForeground
12:29:27.303 (25861) CheckActiveChanged fMust=0, hwndLast=00090BD8
12:29:27.303 (10384) FrameWnd:TKINFO 21
12:29:27.303 (3166) TKINFO 21
12:29:27.303 (3166) TKINFO 23
12:29:27.303 (10387) FrameWnd:TKINFO 21 return 00000000
12:29:27.303 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:27.303 (10384) FrameWnd:TKINFO 139
12:29:27.303 (3166) TKINFO 139
12:29:27.303 (10387) FrameWnd:TKINFO 139 return 00000000
12:29:27.303 (25861) CheckActiveChanged fMust=0, hwndLast=00000000
12:29:27.303 (   0) CDdesub::Disconnect
12:29:27.303 (   0) CDdesub::Disconnect nothing to do
12:29:27.303 (11710) leave
12:29:28.489 (9935) メール総数=880 / 最近の分=51 / 未読=0 / マーク=0
12:29:29.504 (9935)  1通のメールを受信しました。
12:29:44.843 (14100) tid=5560 EditorCmd 40063
12:29:44.843 (24916) tid=5560 AddAttach()
12:29:44.890 (4251) tid=5560 SaveAsHistoryHookProc: initdialog
12:29:44.890 (4267) tid=5560 SaveAsHistoryHookProc: initdone
12:29:49.945 (4281) tid=5560 SaveAsHistoryHookProc: fileok
12:29:49.992 (24487) tid=5560 AddAttach param

[ ]
RE:47375 秀丸メールで自動返信をしたい(No.47376
秀まるお2 さん 15/01/19 13:50
 
 長らくお手間取らせてすみませんでしたけど、やっと原因が分かりました。

 秀丸メールのメニューの「マクロ・マクロ登録...」の「自動起動」ページの
「受信が一段落した時」にマクロ登録しておられる訳ですが、その下にある

  □ 受信が一段落した時用のマクロをエディタ・ウィンドウ上でのマクロと
    並行して実行できるようにする

 ってオプションがあって、それがONになってるとダメなようです。

 とりあえずそこをOFFにしていただければうまくいくようになります。

 そこがONだと、「受信が一段落した時」のマクロは秀丸メール本体ウィンドウ
上でしか実行できなくて、「MakeReplyCustom」で起動したエディタ・
ウィンドウにマクロ実行を移動させることが出来ないです。それでうまくいかな
かったようです。

 この仕組み自体はどうしようも無いので、上記オプションONでエディタ起動し
たらエラーメッセージを表示するとか、何か対策を入れさせていただきます。

[ ]
RE:47133 秀丸メールで自動返信をしたい(No.47378
siniti さん 15/01/19 15:57
 
秀まるお2様

お世話になっております。

もう一つ、考慮が足りませんでした。
教えてください。

返信メールには自動返信したくありません。
この返信メールはどのように判別(判断)できますか?

Subjectの先頭のRE:やRe:の文字列で判断するしかないんですかね?
何か簡単で正確な判断方法があればご教授ください。

[ ]
RE:47376 秀丸メールで自動返信をしたい(No.47379
siniti さん 15/01/19 16:01
 
秀まるお2様

お世話になっております。

> 長らくお手間取らせてすみませんでしたけど、やっと原因が分かりました。
>
> 秀丸メールのメニューの「マクロ・マクロ登録...」の「自動起動」ページの
>「受信が一段落した時」にマクロ登録しておられる訳ですが、その下にある
>
>  □ 受信が一段落した時用のマクロをエディタ・ウィンドウ上でのマクロと
>    並行して実行できるようにする
>
> ってオプションがあって、それがONになってるとダメなようです。
>
> とりあえずそこをOFFにしていただければうまくいくようになります。

正常に実行できました。

大変ありがとうございました。
当方の設定ミスによるもので何回もお手数をおかけしました。


> この仕組み自体はどうしようも無いので、上記オプションONでエディタ起動し
>たらエラーメッセージを表示するとか、何か対策を入れさせていただきます。

ありがとうございます。
よろしくご検討をお願いします。

[ ]
RE:47378 秀丸メールで自動返信をしたい(No.47380
秀まるお2 さん 15/01/19 18:07
 
 返信メールかどうかは、In-Reply-To:ヘッダがあるかどうかで判断できると思
います。(100%の精度ではありませんが)

    if( dllfunc("CurrentHeader", "In-Reply-To") != "" ) {
        //返信メール
        返信メールの場合の処理…

 ってな具合になるかと思います。

 普通に「返信メール」で返信したメールならこれで判断できますが、人によっ
て、たまに返信メールを新規メールで作って送る場合もあって(メールソフトの
返信機能をよく知らない人?)、そういう場合はどうしようも判定できないです。

[ ]
RE:47380 秀丸メールで自動返信をしたい(No.47382
siniti さん 15/01/19 20:04
 
秀まるお2様

> 返信メールかどうかは、In-Reply-To:ヘッダがあるかどうかで判断できると思
>います。(100%の精度ではありませんが)
>
>    if( dllfunc("CurrentHeader", "In-Reply-To") != "" ) {
>        //返信メール
>        返信メールの場合の処理…
>
> ってな具合になるかと思います。


ありがとうございます。

> 普通に「返信メール」で返信したメールならこれで判断できますが、人によっ
>て、たまに返信メールを新規メールで作って送る場合もあって(メールソフトの
>返信機能をよく知らない人?)、そういう場合はどうしようも判定できないです。

それは、しょうがないと思います。
新規メールと扱って差し支えありません。

[ ]
RE:47382 秀丸メールで自動返信をしたい(No.47383
siniti さん 15/01/19 20:27
 
秀まるお2様
>
>> 返信メールかどうかは、In-Reply-To:ヘッダがあるかどうかで判断できると思
>>います。(100%の精度ではありませんが)
>>
>>    if( dllfunc("CurrentHeader", "In-Reply-To") != "" ) {
>>        //返信メール
>>        返信メールの場合の処理…
>>
>> ってな具合になるかと思います。
>
>

上記のマクロの記述で下記のエラーとなりました。
教えてください。

マクロエラー:型が合いません

エラー箇所の内容(変換した内容):
if( dllfunc("CurrentHeader", "In-Reply-To") != "" ) {
      continue;

[ ]
RE:47383 秀丸メールで自動返信をしたい(No.47384
秀まるお2 さん 15/01/19 23:18
 
 すみません。dllfuncじゃなくてdllfuncstrじゃないとダメでした。

    loaddll "tkinfo.dll";
    if( dllfuncstr("CurrentHeader", "In-Reply-To") != "" ) {
        message "返信メール";
    } else {
        message "返信じゃないメール";
    }

 ってな具合で。

[ ]
RE:47384 秀丸メールで自動返信をしたい(No.47390
秀まるお2 さん 15/01/20 10:40
 
 この前のマクロに追加するとしたら、

        if( dllfuncstr("CurrentHeader","Precedences") == "bulk" ) {
            continue;
        }

 の次に、

        if( dllfuncstr("CurrnetHeader", "In-Reply-To") != "" ) {
            continue;
        }

 でいいと思います。(動作確認してませんが)

[ ]
RE:47384 秀丸メールで自動返信をしたい(No.47391
siniti さん 15/01/20 10:44
 
秀まるお2様

お世話になっております。

> すみません。dllfuncじゃなくてdllfuncstrじゃないとダメでした。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ってな具合で。

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

[ ]
RE:47384 秀丸メールで自動返信をしたい(No.48104
siniti さん 15/06/11 15:03
 
> すみません。dllfuncじゃなくてdllfuncstrじゃないとダメでした。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ってな具合で。

いつもお世話になっております。

今使っているメールサーバはクライアント版ではなく
Webメールでして、上記の"In-Reply-To"の判定では反応しません。
→返信メールにも関わらず、"In-Reply-To"が付かない。

同じアカウントでもメールクラアントからの返信の場合には、
"In-Reply-To"ヘッダがついているので、判別できるます。

この様な場合に、返信メールを判定するほかの方法はありますでしょうか?

[ ]
RE:48104 秀丸メールで自動返信をしたい(No.48107
秀まるお2 さん 15/06/11 16:12
 
 とりあえず、返信メール全般にヒットするように、

        if( dllfuncstr("CurrentHeader", "In-Reply-To") != ""
         || leftstr(dllfuncstr("ToUpper",dllfuncstr("CurrentHeader", "Subjec
t")),3) == "RE:"
         || leftstr(dllfuncstr("ToUpper",dllfuncstr("CurrentHeader", "Subjec
t")),3) == "RE^"
         || leftstr(dllfuncstr("ToUpper",dllfuncstr("CurrentHeader", "Subjec
t")),3) == "RE["
          ) {
            continue;
        }

 のような判定でどうでしょうか。
 (テストしてないけど)

[ ]