アカウントの自動設定についてNo.07138
さん 20/09/30 10:39
 
 お世話になっております。
 連投すみません。

 複数のパソコンにメールアカウントを設定しているのですが、アカウントの自動設
定をファイルから読み込んだりすることはできないでしょうか。
 それなりに数が多く、手動入力がそこそこ大変なので、何か方法があれば助かりま
す。
 ちなみに、設定しようとしているアカウントは、独自ドメインのものなので、秀丸
メールにあらかじめセットしてある自動設定に追加していただくのはちょっと難しい
と思います。

 ちなみにですが、Thunderbirdでは、"test@example.com"のようなメールアドレス
の場合、

ttps://autoconfig.example.com/mail/config-v1.1.xml

みたいなアドレスに、決められた書式で自動設定用のXMLファイルを置いておくと、
それに基づいて自動設定してくれるようです。
 さすがにここまでやらなくてもいいとは思いますが、何かファイルから読み込んで
自動設定みたいなことができると、個人的には助かります。
 お時間のある時で結構ですので、よければ検討していただけると幸いです。

 以上、よろしくお願いいたします。

[ ]
RE:07138 アカウントの自動設定についてNo.07140
秀まるお2 さん 20/09/30 14:26
 
 アカウント毎設定の自動設定は、秀丸メールのプログラム用フォルダにある

   AccountAutoConfig.txt

 ってファイルに定義してまして、ユーザーさんか書き換えていただければ、任意の
メールサービスについても自動設定が出てくるようには出来ます。

 AccountAutoConfig.txtファイルは管理者権限が無いと書き換え出来ないので、そ
の点注意が必要ではあります。管理者権限じゃないアプリで書き換えて保存すると、
バーチャルストアという別の所に保存されてしまって、後々面倒なことになります。
必ず管理者権限でテキストエディタを起動して書き換えるか、またはどこか別の、ド
キュメントフォルダなどにコピーしてから書き換えて、それをProgram files配下に
上書きコピーすれば大丈夫だと思います。

 アカウントの登録を自動でやりたいってことでしたら、マクロでなんとかする手は
あります。

 tkinfo.dllの関数に、

    MakeAccount
    LoadAccountProp
    SetAccountProp
    SaveAccountProp

 などの関数があるので、それらを使ってなんとかすることは出来ます。

 自動設定に従って自動でアカウント毎設定を決めるような機能は無いですが、geti
nistrとかを使ってAccountAutoConfig.txtファイルを読み取ってなんとかするような
マクロもやろうと思えば出来るかとは思いますが・・・。特定のメールサービス対象
にってことなら、マクロで大丈夫なんじゃないかと思います。

 何かマクロのサンプルが必要でしたら作ってみてもいいです。

 AccountAutoConfig.txtのフォーマットについて不明な点があれば、それもお返事
は可能です。

[ ]
RE:07140 アカウントの自動設定についてNo.07147
さん 20/10/01 09:14
 
 お世話になります。

> アカウント毎設定の自動設定は、秀丸メールのプログラム用フォルダにある
>
>   AccountAutoConfig.txt
>
> ってファイルに定義してまして、ユーザーさんか書き換えていただければ、任意
>のメールサービスについても自動設定が出てくるようには出来ます。

 なるほど、そうなんですね。
 確かに、追加してみたところ、一応うまくいっているようです。

> 自動設定に従って自動でアカウント毎設定を決めるような機能は無いですが、get
>inistrとかを使ってAccountAutoConfig.txtファイルを読み取ってなんとかするよう
>なマクロもやろうと思えば出来るかとは思いますが・・・。特定のメールサービス
>対象にってことなら、マクロで大丈夫なんじゃないかと思います。
>
> 何かマクロのサンプルが必要でしたら作ってみてもいいです。

 もしよろしければ、マクロのサンプルを作っていただけないでしょうか。

 以上、よろしくお願いいたします。

[ ]
RE:07147 アカウントの自動設定についてNo.07149
秀まるお2 さん 20/10/01 16:12
 
 マクロ作ってみました。一応そこそこテストしたのでうまく動くと思います。

----------------------------------------------------------------------------
------------
//アカウント自動登録マクロ by 秀まるお
// 2020.10.01
//
//
    $email = input("アカウントを自動設定に基づいて作成します。\nメールアドレ
スは?");
    if( $email == "" ) {
        endmacro;
    }
    #x = strstr($email,"@");
    if( #x < 0 ) {
        message "メールアドレスの中に@がありません。";
        endmacro;
    }
    $domain = midstr( $email, #x + 1 );
    $atleft = leftstr( $email, #x );
    openreg "LOCALMACHINE", "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\U
ninstall\\TuruKame";
    $path = getregstr("InstallLocation");
    closereg;
    $inifile = $path + "\\AccountAutoConfig.txt";
    if( !existfile($inifile) ) {
        message "AccountAutoConfig.txtが見つかりません。マクロを終了します。";
        endmacro;
    }
    $serviceName = getinistr($inifile, $domain, "name");
    if( $serviceName == "" ) {
        #x = strstr( $domain, "." );
        if( #x >= 0 ) {
            $domain2 = "*" + midstr( $domain, #x );
            $serviceName = getinistr($inifile, $domain2, "name");
            if( $serviceName != "" ) {
                $domain = $domain2;
            }
        }
    }
    if( $serviceName == "" ) {
        message "AccountAutoConfig.txtの中から自動設定を見つけることが出来ま
せんでした。\n対象のドメイン = " + $domain + "\n設定ファイル = " + $inifile;
        endmacro;
    }
    $pop = getinistr($inifile, $domain, "pop");
    $imap = getinistr($inifile, $domain, "imap");
    if( $pop != "" && $imap != "" ) {
        question "POP3かIMAP4かどっちで受信しますか?\n[はい] → POP3\n[いい
え] → IMAP4";
        if( result == yes ) {
            $imap = "";
        } else {
            $pop = "";
        }
    }
    $smtp = getinistr($inifile, $domain, "smtp");
    loaddll "tkinfo.dll";
    $account = $email;
    #count = 1;
    while(1) {
        $s = dllfuncstr("AccountFrom", $account);
        if( $s == "" ) {
            break;
        }
        #count = #count + 1;
        if( #count >= 10 ) {
            //エラー
            message "同じメールアドレスでアカウントがすでに9個作成されてます。
中止します。";
            endmacro;
        }
        $account = $email + "(" + str(#count) + ")";
    }
    #n = dllfunc("MakeAccount", $account);
    if( #n == 0 ) {
        message "アカウントの作成に失敗しました。アカウント名 = " + $account;
        endmacro;
    }
    #n = dllfunc("LoadAccountProp", $account);
    if( #n == 0 ) {
        message "アカウント毎設定の読み込みに失敗しました。アカウント = " +
$account;
        endmacro;
    }
    #n = dllfunc("SetAccountProp", "szEmail", $email);
    #n = dllfunc("SetAccountProp", "szSmtpServer", $smtp);
    if( getininum($inifile, $domain, "smtpssl") >= 1 ) {
        //popssl=1の場合
        #n = dllfunc("SetAccountProp", "nSmtpPort", 465);
        #n = dllfunc("SetAccountProp", "fSmtpOverSSL", 1);
    } else {
        if( getininum($inifile, $domain, "smtpstarttls") >= 1 ) {
            #n = dllfunc("SetAccountProp", "fSmtpOverSSL", 1);
            #n = dllfunc("SetAccountProp", "fSmtpStartTLS", 1);
        }
        if( getininum($inifile, $domain, "obp25") >= 1 ) {
            #n = dllfunc("SetAccountProp", "nSmtpPort", 587);
        }
    }
    if( $pop != "" ) {
        #n = dllfunc("SetAccountProp", "szPop3Server", $pop);
        #n = dllfunc("SetAccountProp", "recvSrv", 0);
        if( getininum($inifile, $domain, "popssl") >= 1 ) {
            //popssl=1の場合
            #n = dllfunc("SetAccountProp", "nPop3Port", 995);
            #n = dllfunc("SetAccountProp", "fPopOverSSL", 1);
        }
    } else {
        #n = dllfunc("SetAccountProp", "szPop3Server", $imap);
        #n = dllfunc("SetAccountProp", "recvSrv", 0xA9);
        if( getininum($inifile, $domain, "imapssl") >= 1 ) {
            //popssl=1の場合
            #n = dllfunc("SetAccountProp", "nPop3Port", 993);
            #n = dllfunc("SetAccountProp", "fPopOverSSL", 1);
        }
    }
    $id = getinistr($inifile, $domain, "id");
    if( $id == "email" ) {
        #n = dllfunc("SetAccountProp", "szPop3Account", $email);
    } else if( $id == "atleft" ) {
        #n = dllfunc("SetAccountProp", "szPop3Account", $atleft);
    }
    if( getininum($inifile, $domain, "oauth") >= 1 ) {
        #n = dllfunc("SetAccountProp", "fOAuth", 1);
    }
    if( getininum($inifile, $domain, "popbeforesmtp") >= 1 ) {
        #n = dllfunc("SetAccountProp", "fPopBeforeSmtp", 1);
    } else {
        #n = dllfunc("SetAccountProp", "fESMTP", 1);        //SMTP-AUTHをON
    }
    #n = dllfunc("SetAccountProp", "fSaveOnServer", 1);         //受信した
メールをサーバー上に残す
    #n = dllfunc("SetAccountProp", "cSaveOnServerDate", 5);     //残す期間 =
 5日
    #n = dllfunc("SaveAccountProp");
    #n = dllfunc("SelectFolder", $account, "");
    message "アカウント毎設定を自動設定しました。ご自身のお名前やメールパス
ワードなどはご自身で設定してください。IMAPの場合は「メールサーバー・POP3/IMA
P4」のページでモードの指定なども必要になります。";
    //#n = dllfunc("Bypass_PostMessage", hidemaruhandle(0), 0x111, 40023);

[ ]
RE:07149 アカウントの自動設定についてNo.07153
さん 20/10/02 09:09
 
 お世話になります。

 マクロありがとうございました。
 うまく動いているようです。
 大変助かりました。

 以上、今後ともよろしくお願いいたします。

[ ]