Subjectへの追加テンプレートNo.05928
ごえもんたろう さん 19/12/02 16:37
 
こんにちは
送信したメールを草稿にコピーし、Subjectに特定の文章を先頭に追加は、本文の内容
を別のないようにするテンプレートは作成できないのでしょうか?

客先にパスワード付きのファイルを添付したメールを送信し、そのパスワードを送信
するのにTo,ccはそのままで件名に[パスワード送信]と追加し、本文をパスワードを記
入する文面に変更したいと思っています。

[ ]
RE:05928 Subjectへの追加テンプレートNo.05929
秀まるお2 さん 19/12/02 17:06
 
 目的のことはテンプレートでは無理があると思います。やるとしたらマクロでって
なります。

 添付ファイルを暗号化Zipで圧縮してパスワードを別便で送る用のマクロは、実は
既にあります。

    https://hide.maruo.co.jp/lib/tkmacro/zipcompress_with_password_notify_v11.html

 これでどうでしょうか。

 ユーザー様から要望があって僕が作成した物になります。

[ ]
RE:05929 Subjectへの追加テンプレートNo.05930
ごえもんたろう さん 19/12/02 17:35
 
ありがとうございました。

使わせていただきたいと思います。

> 目的のことはテンプレートでは無理があると思います。やるとしたらマクロでっ
>てなります。
> ......
> ユーザー様から要望があって僕が作成した物になります。

[ ]
RE:05929 Subjectへの追加テンプレートNo.05936
ごえもんたろう さん 19/12/03 16:28
 
使わせいていただいておりますが、圧縮時のファイル名でファイルの拡張子を省くこ
とは可能でしょうか?

 例 aaaaa.pdf.zip  -->  aaaaa.zip





> 目的のことはテンプレートでは無理があると思います。やるとしたらマクロでっ
>てなります。
> ......
> ユーザー様から要望があって僕が作成した物になります。

[ ]
RE:05936 Subjectへの追加テンプレートNo.05937
秀まるお2 さん 19/12/03 17:53
 
 マクロ直してみました。「2019.12.03」とコメントの書いてある箇所付近が変更箇
所になります。


// 添付ファイル圧縮-7zip-パスワード別便通知.mac by 斉藤秀夫
// 2019.02.24
// 7-zipのダウンロード先:  http://sevenzip.sourceforge.jp/
//
// 2019.03.08 Version 1.1 署名も付けるようにした。乱数発生用のメッセージ表示
回数を少し減らした。

    //パスワード付きにする場合はここにパスワードを設定しておく。
    //パスワード無しにするなら""を代入する。
    //パスワードを毎回入力したい場合は $password = "*"としておく。
    //パスワードの中には空白は入れないでください。
    //受信したメールの添付ファイルを圧縮する場合についてはパスワードの指定は
効きません。常にパスワード無しで圧縮されます。
    //
    // 例:
    //  $password = "";         ... パスワード無し
    //  $password = "pass";     ... パスワードを"pass"にする。
    //  $password = "*";        ... パスワードを毎回入力する。
    //  #passwordlength = 10;   ... パスワードを自動生成。長さ指定。
    #passwordlength = 6;

    loaddll "tkinfo.dll";
    $7zip = "C:\\Program files\\7-Zip\\7z.exe";
    if( ! existfile( $7zip ) ) {
        $7zip = "C:\\Program files (x86)\\7-Zip\\7z.exe";
        if( ! existfile( $7zip ) ) {
            message "7-Zipのプログラム用ファイルが見つかりません。7-Zipをイ
ンストールしてください。\n\n" +
                    "7-Zipは、C:\\Program files\\7-Zip またはC:\\Program fil
es (x86)\\7-Zip にインストールされてる必要があります。";
            endmacro;
        }
    }
    openreg "CURRENTUSER", "Software\\Hidemaruo\\TuruKame\\Config";
    $home = getregstr( "HomeDir" );
    closereg;
    $account = dllfuncstr("CurrentAccount");
    if( dllfunc("IsTuruKameMain") ) {
        message "このマクロは送信するメール専用です。";
        endmacro;
    }

    if( dllfunc("MailType") == 3 || readonly ) {
        message "受信したメールの添付ファイル・圧縮は、このマクロでは出来ま
せん。";
        endmacro;
    }
    if( dllfuncstr("CurrentHeader", "To" ) == "" ) {
        message "宛先がまだ指定されてません。このマクロは宛先/件名を入力した
後に実行してください。";
        endmacro;
    }
    if( dllfuncstr("CurrentHeader", "Subject" ) == "" ) {
        message "件名がまだ指定されてません。このマクロは宛先/件名を入力した
後に実行してください。";
        endmacro;
    }
    #cAttach = 0;
    while(1) {
        $aAttach[#cAttach] = dllfuncstr("CurrentHeader2", "X-Attach"
                                       , #cAttach );
        if( $aAttach[#cAttach] == "" ) break;
        #cAttach = #cAttach + 1;
    }
    if( #cAttach == 0 ) {
        message "添付ファイルは1つもありません。";
        endmacro;
    }
    //2019.12.03 添付ファイル・ファイル名の中から元ファイルの拡張子を除去する。
    $newBaseName = $aAttach[0];
    #xExt = strrstr( $newBaseName, "." );
    if( #xExt > 0 ) {
        $newBaseName = leftstr( $newBaseName, #xExt );
    }
    if( #cAttach == 1 ) {
        if( rightstr( $aAttach[0], 4 ) == ".zip" ) {
            message "添付ファイルは既に圧縮されてます。";
            endmacro;
        }
        $dest = $newBaseName + ".zip";
    } else {
        $dest = $newBaseName + "など.zip";
    }
    while(1) {
        #n = strstr( $dest, "\\" );
        if( #n < 0 ) {
            break;
        }
        $dest = midstr( $dest, #n + 1, 256 );
    }
    $dest = input( "圧縮して作成するファイル名は?", $dest );
    if( $dest == "" ) {
        endmacro;
    }
    if( #passwordlength != 0 ) {
        #i = 0;
        $password = "";
        #rand_init = tickcount + #i + val(second) + val(minute);
        while( #i < #passwordlength ) {
            if( #i == 0 ) {
                #rand = #rand_init / (10 + 26 + 26) % (10 + 26 + 26);
            } else if( #i == 1 ) {
                #rand = #rand_init % (10 + 26 + 26);
            } else {
                message "乱数を生成する用に、何かキーを押してください。(あ
と" + str( #passwordlength - #i ) + "回)";
                refreshdatetime;
                #rand = (tickcount + #i + val(second) + val(minute)) % (10 +
 26 + 26);
            }
            if( #rand < 10 ) {
                $rand = char( '0' + #rand );
            } else if( #rand < 10 + 26 ) {
                $rand = char( 'a' + #rand - 10 );
            } else {
                $rand = char( 'A' + #rand - 10 - 26 );
            }
            $password = $password + $rand;
            #i = #i + 1;
        }
    } else {
        if( $password == "*" ) {
            $password = input( "パスワードは?" );
            if( $password == "" ) {
                question "パスワード無しにしますか?";
                if( result != yes ) {
                    endmacro;
                }
            }
        }
    }

    //「ドキュメント」フォルダ配下に生成する?
    openreg "CURRENTUSER","Software\\Microsoft\\Windows\\CurrentVersion\\Exp
lorer\\Shell Folders";
    $outfolder = getregstr("Personal");
    closereg;
    $outfolder = $outfolder + "\\ZipTemp";
    runsync2 "cmd.exe /c rmdir /s /q \"" + $outfolder + "\"";       //古いフ
ァイルのゴミを削除
    #n = dllfunc("Bypass_CreateDirectory", $outfolder);

    $destbase = $dest;
    $dest = $outfolder + "\\" + $dest;
    #n = dllfunc("Bypass_SetFileAttributes", $dest, 0x00000020);
    #n = dllfunc("Bypass_DeleteFile", $dest);
    //添付ファイル圧縮-7zip.macで修正。
    //$cmd = "-j \"" + $dest + "\"";
    $cmd = "a \"" + $dest + "\"";
    #i = 0;
    while( #i < #cAttach ) {
        $cmd = $cmd + " \"" + $home + $account + "\\" + $aAttach[#i] + "\"";
        #i = #i + 1;
    }
    //添付ファイル圧縮-7zip.macで修正。
    //#n = dllfunc("Zip", hidemaruhandle(0), $cmd);

    if( $password != "" ) {
        $cmd = "-p" + $password + " " + $cmd;
    }
    $cmdline = "\"" + $7zip + "\" " + $cmd;
    runsync2 $cmdline;
    if( !result ) {
        message "7zipの実行に失敗しました。";
        endmacro;
    }
    if( ! existfile( $dest ) ) {
        message "7zipで生成されたはずのファイルがありません。たぶん圧縮に失
敗しています。\nファイル名 = " + $dest;
        endmacro;
    }
    #n = dllfunc("AddAttach", $dest);
    // ファイルの削除
    #n = dllfunc("Bypass_DeleteFile", $dest);
    #i = 0;
    while( #i < #cAttach ) {
        #n = dllfunc("UndoAttach", $aAttach[#i]);
        #i = #i + 1;
    }
    if( $password != "" ) {
        $to = dllfuncstr("CurrentHeader", "To");
        $toname = dllfuncstr("SetNameOnly", $to);
        if( $toname == "" ) {
            $toname = $to;
        }
        $subject = dllfuncstr("CurrentHeader", "Subject");
        $sign = dllfuncstr("CurrentSignName");
        #attachhidemaru = hidemaruhandle(0);
        #n = dllfunc("NewMail");
        #n = dllfunc("SwitchSign", "");         //署名無しに一回切り替え
        #n = dllfunc("SetHeader", "To", $to );
        #n = dllfunc("SetHeader", "Subject", "パスワードの通知 - " + $subjec
t );
        gofiletop;
        beginsel;
        gofileend;
        delete;
        insert $toname + " 様\n\n暗号化したファイルを別メールで送信しました
ので、\nパスワードをお知らせします。\n\n" +
                "件名 : " + $subject + "\n" +
                "\n" +
                "添付ファイル名: " + $destbase + "\n" +
                "解凍パスワード: " + $password + "\n" +
                "\n" +
                "よろしくお願いします。\n";
        if( leftstr($sign, 1) == "\\" ) {
            //切り替えできない
            $signContent = dllfuncstr("LoadTemplate", "sign", $sign);
            if( $signContent != "" ) {
                insert "\n" + $signContent;
            }
        } else {
            #n = dllfunc("SwitchSign", $sign);          //署名をここで切り替え
        }
        gofiletop;
        setactivehidemaru #attachhidemaru;
    }
    endmacro;

[ ]
RE:05937 Subjectへの追加テンプレートNo.05942
ごえもんたろう さん 19/12/05 08:40
 
ありがとうございました。
大変助かりました。

> マクロ直してみました。「2019.12.03」とコメントの書いてある箇所付近が変更
>箇所になります。
> ......
>    endmacro;


[ ]