返信先の指定No.44665
nito3 さん 13/07/06 15:41
 
フォルダが2つ有り、返信ボタンを押した時の「返信先の指定」ダイアログで動作が
違うので戸惑ってます。

■1つめのフォルダ
ダイアログを表示させるとformの宛先が出る
「fromアドレスに返信」は最初からグレーになっている。

■2つめのフォルダ
ダイアログを表示させるとformの宛先が出ない。
「fromアドレスに返信」にチェックを入れるとfromの宛先が表示される。

両方ともテンプレート、署名は使っている。
テンプレート内の構成は一緒。
フォルダの設定で設定してある項目は、両方とも一緒(のつもり)。

2つめのフォルダでも、最初からfromの宛先を表示したいのですが、
どこかの設定が影響しているのでしょうか?
何かヒントでもいただけたら幸いです。

[ ]
RE:44665 返信先の指定No.44667
秀まるお2 さん 13/07/07 17:54
 
 返信ダイアログボックスでの「Fromアドレスに返信」がグレーになるかどうか
は、Reply-To:ヘッダの有り無しで決まると思います。

 メールにReply-To:ヘッダがあれば普通は出てきて、無ければ出てこないです。
フォルダとかテンプレートの指定は関係無いです。

> 2つめのフォルダでも、最初からfromの宛先を表示したいのですが、
> どこかの設定が影響しているのでしょうか?

 基本的に、送られてきたメールにReply-To:ヘッダがあれば、そのメールへの
返信先は、Reply-To:に送るのが基本的なルールになります。それをあえてFrom:
ヘッダに返信するというのは、一般的なメールのルール的にはよろしくない話に
なります。それを覚悟の上でなんとかしたいってことでしたら、テンプレートで
指定するとしたら、

$(NoWarningHeaderUpdate)$-
$(SetHeader,To,$($RootHeader,From))$-

 のような命令を入れる形になります。こうするとFrom:ヘッダに返信します。

 こういうテンプレートを用意しておいて、フォルダ毎の設定でテンプレートを
指定しておけばいいかと思います。

 それか、そもそも「返信メール」のコマンドを実行するんじゃなくて、From:
に返信する用のマクロを別途作成してそれで返信する作戦がいいかと思います。

 マクロとしては、

    loaddll "tkinfo.dll";
    #n = dllfunc("MakeReplyCustom", "From", "");

 ってなマクロになります。

 返信ダイアログがいちいち出てくるのが面倒でしたら、後者のやり方でやって
いただくしか無いかと思います。

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

[ ]
RE:44667 返信先の指定No.44668
nito3 さん 13/07/07 19:53
 
> 返信ダイアログボックスでの「Fromアドレスに返信」がグレーになるかどうか
>は、Reply-To:ヘッダの有り無しで決まると思います。

そう言うことですか。
納得しました。

> 基本的に、送られてきたメールにReply-To:ヘッダがあれば、そのメールへの
>返信先は、Reply-To:に送るのが基本的なルールになります。それをあえてFrom:
>ヘッダに返信するというのは、一般的なメールのルール的にはよろしくない話に
>なります。

業務でサポート受付にMLを使っていて、
特殊な使い方をしているのは分かっています。
また確認のために返信ダイアログは必要なんです。

で検討したのですが、Reply-Toを削除すれば良さそうなんです。
受信の振り分けで、指定したヘッダーを削除または削除マクロを実行することはでき
ないでしょうか?
ご検討をお願いします。

[ ]
RE:44668 返信先の指定No.44670
秀まるお2 さん 13/07/08 08:54
 
 振り分けでReply-To:ヘッダを削除するのは現状不可になります。

 振り分けアクションではSubject:ヘッダの加工は出来るんですが、他のヘッダ
については出来なくて、そこまでやりたい場合はマクロでってお願いしています。

 マクロの例としては、例えばこんな風になります。

    loaddll "tkinfo.dll";
    if( dllfunc("RecvMailCountInFolder", "斉藤秀夫メイン", "受信") == 0 ) {
        endmacro;
    }
    $acc = dllfuncstr("CurrentAccount");
    $folder = dllfuncstr("CurrentFolder");
    #n = dllfunc("SelectFolder", "斉藤秀夫メイン", "受信");
    while( dllfunc("SelectRecvMailInFolder") ) {
        if( dllfuncstr("CurrentHeader", "Reply-To") != "" ) {
            #n = dllfunc("BeginEditMail");
            #n = dllfunc("DeleteHeader", "Reply-To");
            #n = dllfunc("SaveEditMail");
        }
    }
    #n = dllfunc("SelectFolder", $acc, $folder);

 上記の例は、「斉藤秀夫メイン」ってアカウントの「受信」フォルダを対象に
する物なので、その辺は書き換えて使っていただく形になります。フォルダの指
定方法は、例えば受信フォルダ配下なら"受信\\フォルダ名"のようになりますが、
アカウント直下の場合は"User\\フォルダ名"のようになります。詳しくはマクロ
ヘルプのSelectFolderの所を参照ください。

 このようなマクロを作成して、それを「マクロ・マクロ登録...」の「自動起
動」ページの「受信が一段落した時」に登録しておけばいいです。

 ただ、受信が終わる度に画面がばたばたするので、この方法はあまりお勧めで
は無いです。


 個人的にはテンプレートの命令で$(SetHeader,To,$(RootHeader,From))を使う
作戦の方が簡単でいいんじゃないかと思います。

[ ]
RE:44670 返信先の指定No.44671
秀まるお2 さん 13/07/08 09:32
 
 「返信メール」コマンドを実行する度にReply-To:ヘッダ削除する作戦のマク
ロの例も念のため書きますと、

    loaddll "tkinfo.dll";
    if( dllfuncstr("CurrentAccount") == "対象アカウント"
     && dllfuncstr("CurrentFolder") == "対象フォルダ" ) {
        if( dllfuncstr("CurrentHeader", "Reply-To") != "" ) {
            #n = dllfunc("BeginEditMail");
            #n = dllfunc("DeleteHeader", "Reply-To");
            #n = dllfunc("SaveEditMail");
        }
    }
    #n = dllfunc("MakeReply");
    $s = dllfuncstr( "NewEditorMacro" );
    if( $s != "" ) {
        execmacro $s;
    }

 のようになります。こういうマクロを1つ作って、「マクロ・マクロ登
録...」の「コマンド置き換え」の所で、例えば

    40019,customreply.mac

 のように「返信メール」コマンドをマクロに置き換えてしまう指定をすれば、
返信メールコマンド実行と同時にReply-To:ヘッダを削除してってことが出来ま
す。

[ ]
RE:44671 返信先の指定No.44672
nito3 さん 13/07/08 12:25
 
> 「返信メール」コマンドを実行する度にReply-To:ヘッダ削除する作戦のマク
>ロの例も念のため書きますと、

ありがとうございます。
こちらのマクロを使わせていただきます。

[ ]
RE:44670 返信先の指定No.44673
nito3 さん 13/07/08 12:27
 
> 個人的にはテンプレートの命令で$(SetHeader,To,$(RootHeader,From))を使う
>作戦の方が簡単でいいんじゃないかと思います。

返信のダイアログは必要なので、残念ながらテンプレートを使う方法は使えませんで
した。

[ ]
RE:44672 返信先の指定No.44674
nito3 さん 13/07/08 13:12
 
>> 「返信メール」コマンドを実行する度にReply-To:ヘッダ削除する作戦のマク
>>ロの例も念のため書きますと、
>こちらのマクロを使わせていただきます。

せっかくマクロを作っていただいてから言うのも申し訳ないですが、
本当の目的は、返信ダイアログで、
(1)(fromに返信するかどうかは別にして)reply-toがあっても最初からfromのアド
レスが表示されている
(2)または最初から「fromアドレスに返信」にチェックされている
と言うことなのです。
reply-to削除は、単なる手段なのです。

そのような設定はできませんでしょうか?
またはいい方法はありませんでしょうか?
やっぱり教えていただいたマクロで対応しないといけないのでしょうか?

[ ]
RE:44674 返信先の指定No.44675
秀まるお2 さん 13/07/08 15:54
 
 SimulateKeyStrokeで出来るかと思ったんですが、うまくいきませんでした。

 で、よくよく調べてみたら、MakeReplyCustomのパラメータに"QueryFrom"を指
定すれば期待された動作になるようです。

 マクロとしては、例えば

    loaddll "tkinfo.dll";
    if( dllfuncstr("CurrentAccount") == "対象アカウント"
     && dllfuncstr("CurrentFolder") == "対象フォルダ"
     && dllfuncstr("CurrentHeader", "Reply-To") != "" ) {
        #n = dllfunc("MakeReplyCustom", "QueryFrom", "");
    } else {
        #n = dllfunc("MakeReply");
    }
    if( #n != 0 ) {
        $s = dllfuncstr( "NewEditorMacro" );
        if( $s != "" ) {
            execmacro $s;
        }
    }

 みたいな感じになります。

 (ちなみに前回のマクロはちょっとバグがありました)

 こんなマクロでどうでしょうか。

[ ]
RE:44675 返信先の指定No.44676
nito3 さん 13/07/08 18:11
 
> こんなマクロでどうでしょうか。

ありがとうございます。
こちらの方を使わせていただきます。

[ ]