添付ファイルの一括保存No.07127
IMAHN さん 02/05/17 18:12
 
はじめまして,C.O.といいます.
先月から別のメーラーから移行して利用しております.
大変使い勝手がよく重宝しております.

さて,すでに同様の質問がありましたら恐縮ですが,
添付ファイルの保存に関する質問です.
各サブフォルダごとに保存されている受信メールの添付ファイルを
一括保存する方法はないのでしょうか.

私は,1つのアカウントに複数のサブフォルダを作り受信しています.
ところが,添付ファイルが大変多いため,1つずつメールを開いて
保存する作業が大変になります.
(現在はこの作業をしております)

そこで,解決策を考えていたのですが,思いつきませんでした.
「受信添付」には当該アカウントで受信したすべての添付ファイルが
保存されているので,ここから一括保存できないかと思ったのですが,
このフォルダから,サブフォルダの添付ファイルを探すことが困難でした.
簡単に添付ファイルを保存できる方法がございましたら
教えて頂けないでしょうか.
それでは失礼いたします.

[ ]
RE:07127 添付ファイルの一括保存No.07128
秀まるお2 さん 02/05/17 19:03
 
 該当する機能はマクロを使わないと出来ないと思います。

 マクロを使うなら、例えば以下のようなマクロになります。

--------------------------------------------------------------------
    loaddll "tkinfo.dll";
    if( dllfunc("IsThreadView") ) {
        message "スレッド表示だと実行できません。";
        endmacro;
    }
    #viewarea = dllfunc("ViewArea");
    if( #viewarea != 5 ) {
        #n = dllfunc("SetViewArea", 5);
    }
    #total = dllfunc("MailCount");
    if( #total == 0 ) {
        message "添付ファイル付きメールが1つもありません。";
        #n = dllfunc("SetViewArea", #viewarea );
        endmacro;
    }
    #i = 0;
InputPath:
    $dest = input( "添付ファイルを保存する先のフォルダのフルパス名は?"
                 + "\n\n(例: c:\\folder)" );
    if( $dest == "" ) {
        endmacro;
    }
    if( ! existfile( $dest + "\\." ) ) {
        message "指定されたフォルダが存在しません。"
              + "入力しなおしてください。";
        goto InputPath;
    }
    while( #i < #total ) {
        #n = dllfunc("SetMailIndex", #i );
        #x = 0;
        $attach = dllfuncstr("CurrentHeader", "X-Attach");
        if( $attach != "" ) {
            $src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount")
                 + "\\" + $attach;
            // フォルダ名のみに変換する。
            #xFolder = -1;
            #xFile = -1;
            while(1) {
                #x = strstr( midstr( $src, #xFile + 1, 256 ), "\\" );
                if( #x < 0 ) {
                    break;
                }
                #x = #x + #xFile + 1;
                #xFolder = #xFile;
                #xFile = #x;
            }
            $src = leftstr( $src, #xFile );
            $command = "xcopy.exe \"" + $src + "\" \""
                      + $dest + "\\" + midstr( $src, #xFolder + 1, 256 )
                       + "\" /S /I";
            runsync2 $command;
        }
        #i = #i + 1;
    }
    #n = dllfunc("SetViewArea", #viewarea );
    run "start " + $dest;

[ ]
RE:07128 添付ファイルの一括保存No.07130
IMAHN さん 02/05/17 20:05
 
IMAHNです.早速の回答ありがとうございます.
早速試してみたところ,一括保存しました.
ありがとうございます.
秀丸ではいくつかマクロを作ったことがあるのですが,
今回のソースをみてもわからない箇所があったので
少し勉強しようかなと思います.
鶴亀メールは大変使いやすいソフトですので,今後もサポート等
よろしくお願いいたします.
それでは失礼いたします.


[ ]