返信時、元メールの宛先から差出人アドレNo.11776
おじさん さん 23/09/11 18:18
 
Yahooメールのセーフティーアドレスをを使用し
相手によって自分のメアドを使い分けています。

どのメアドにするかは、新規にメールを作成する際は
自分で選択するしかありませんが、
返信メール・転送メールの際は、元メールの宛先から
返信・転送メールの差出人メアドを自動設定できると
ありがたいと考えています。

具体的には、
返信メール・転送メール作成のボタンを押した際、
元メールのto,ccにあるメアドから自分の物であるメアド
(アカウントの設定〜個人情報〜詳細〜自分用のメールアドレスの別名で登録されて
いるもの、あるいはマクロ等で保持してもよい)を探索し、
合致した物があればそれを差出人メアドに設定する
のような動作を想定しています。

このような機能あるいはマクロ等はありますでしょうか。

どうぞよろしくお願いします。

秀丸メール7.20
W10home

[ ]
RE:11776 返信時、元メールの宛先から差出No.11777
秀まるお2 さん 23/09/11 18:50
 
 Yahooのその「セーフティーアドレス」を僕も作ってテストしてみました。これは
便利かもしれません。

 マクロは僕の方で作ってみます。

 その前に、「アカウント毎の設定」の「個人情報 - 詳細」のページに「自分用
メールアドレスの別名」って設定があります。そこにセーフティーアドレスを登録し
ておくのがお勧めです。マクロもそこに登録してある前提で作ろうかなぁと思います。
完成したらここに書き込みさせていただきます。少々お待ちください。

[ ]
RE:11777 返信時、元メールの宛先から差出No.11778
おじさん さん 23/09/12 09:35
 
早速ご対応いただけるとのこと、毎々ありがとうございます。

> 「アカウント毎の設定」の「個人情報 - 詳細」のページに「自分用メールアドレ
>スの別名」って設定があります。そこにセーフティーアドレスを登録しておくのが
>お勧めです。

登録済みです。

> マクロもそこに登録してある前提で作ろうかなぁと思います。

その方法のほうが、自分のメアドをマクロ内に保持するよりも扱いやすく、
助かります。

どうぞよろしくお願いいたします。

[ ]
RE:11778 返信時、元メールの宛先から差出No.11779
秀まるお2 さん 23/09/12 11:00
 
 マクロできました。「マクロ - マクロ登録...」の「自動起動」ページの「送信用
のエディタ起動時」の所に登録するか、または返信用/転送用のテンプレートに

   $(ExecMacro,"From書き換え.mac")$-

 みたいな命令を入れて使ってみてほしいです。

 うまく動かない場合は、

   //message "....";

 となってる所の「//」を取ってメッセージ表示させると、何か解決のヒントが分か
ると思います。

                #n = dllfunc("SetHeader", "From", $from);

 の所は、

                #n = dllfunc("SetHeader", "From", $hit);

 のようにしてもいいかもしれません。そうするとFrom:ヘッダはメールアドレスの
みになります。あえてそういう返信の仕方をした方がいいかもしれません。


---------------------------------------------Fromヘッダを別名に変更.mac-----
------------------
    loaddll "tkinfo.dll";
    #n = dllfunc("LoadAccountProp", dllfuncstr("CurrentAccount"));
    $alias = dllfuncstr("GetAccountProp", "szEmailAlias");
    if( $alias == "" ) {
        message "このマクロを実行するには「アカウント毎の設定・個人情報・詳
細」の「自分用メールアドレスの別名」にご自身のセーフティーアドレスを登録して
ください。";
        endmacro;
    }
    $alias = "," + dllfuncstr("GetAccountProp", "szEmail") + "," + $alias +
",";        //自分自身のメールアドレスを前後にコンマが入る形の文字列にする。
    $to = dllfuncstr("RootHeaderUnited", "To") + "," + dllfuncstr("RootHeade
rUnited", "Cc");
    if( $to == "," ) {
        //返信メールでも転送メールでも無い場合
        //message "返信メールでも転送メールでも無い";
        endmacro;
    }
    #i = 0;
    #count = dllfunc("CountEmailList", $to);
    while( #i < #count ) {
        $one = dllfuncstr("GetEmailList", $to, #i);
        $one = dllfuncstr("SetEmailOnly", $one);
        $one = "," + $one + ",";
        #x = strstr( $alias, $one );
        if( #x >= 0 ) {
            if( #x == 0 ) {
                //メインのメールアドレスなら何もしない。
                //message "メインのメールアドレス";
            } else {
                //message "From:ヘッダ書き換え";
                $hit = midstr( $alias, #x + 1 );
                $hit = leftstr( $hit, strstr( $hit, "," ) );
                $name = dllfuncstr("SetNameOnly", dllfuncstr("CurrentHeader",
 "From"));
                if( $name == "" ) {
                    $from = $hit;
                } else {
                    $from = $name + " <" + $hit + ">";
                }
                #n = dllfunc("SetHeader", "From", $from);
            }
            endmacro;;
        }
        #i = #i + 1;
    }
    //message "自分のメールアドレス見つからず。";

[ ]
RE:11779 返信時、元メールの宛先から差出No.11780
おじさん さん 23/09/12 17:29
 
早々とありがとうございます。

お作りいただいたもので、動作確認しました。
まさに希望通りの動作です!

#四半世紀以上前に4000円払っただけで
#素晴らしいエディタとメーラーが使え
#それらのバージョンアップと
#このような手厚いサポートまでしていただき
#本当に感謝しています。

[ ]
RE:11780 返信時、元メールの宛先から差出No.11781
秀まるお2 さん 23/09/13 07:47
 
 1つバグがありました。To:ヘッダの中のメールアドレスに大文字が混じってると
うまく動きませんでした。改良版を書き込みます。

----------------------------------------------------------------------------
    loaddll "tkinfo.dll";
    #n = dllfunc("LoadAccountProp", dllfuncstr("CurrentAccount"));
    $alias = dllfuncstr("GetAccountProp", "szEmailAlias");
    if( $alias == "" ) {
        message "このマクロを実行するには「アカウント毎の設定・個人情報・詳
細」の「自分用メールアドレスの別名」にご自身のセーフティーアドレスを登録して
ください。";
        endmacro;
    }
    $alias = "," + dllfuncstr("GetAccountProp", "szEmail") + "," + $alias +
",";        //自分自身のメールアドレスを前後にコンマが入る形の文字列にする。
    $alias = dllfuncstr("ToLower", $alias);
    $to = dllfuncstr("RootHeaderUnited", "To") + "," + dllfuncstr("RootHeade
rUnited", "Cc");
    $to = dllfuncstr("ToLower", $to);
    if( $to == "," ) {
        //返信メールでも転送メールでも無い場合
        //message "返信メールでも転送メールでも無い";
        endmacro;
    }
    #i = 0;
    #count = dllfunc("CountEmailList", $to);
    while( #i < #count ) {
        $one = dllfuncstr("GetEmailList", $to, #i);
        $one = dllfuncstr("SetEmailOnly", $one);
        $one = "," + $one + ",";
        #x = strstr( $alias, $one );
        if( #x >= 0 ) {
            if( #x == 0 ) {
                //メインのメールアドレスなら何もしない。
                //message "メインのメールアドレス";
            } else {
                //message "From:ヘッダ書き換え";
                $hit = midstr( $alias, #x + 1 );
                $hit = leftstr( $hit, strstr( $hit, "," ) );
                $name = dllfuncstr("SetNameOnly", dllfuncstr("CurrentHeader",
 "From"));
                if( $name == "" ) {
                    $from = $hit;
                } else {
                    $from = $name + " <" + $hit + ">";
                }
                #n = dllfunc("SetHeader", "From", $from);
            }
            endmacro;;
        }
        #i = #i + 1;
    }
    //message "自分のメールアドレス見つからず。";

[ ]