転送メールに添付ファイルを付けないNo.48173
Jerry_is さん 15/07/01 14:51
 
メールを転送する場合,デフォルトでは添付ファイルも自動的に付いてきます。転送
メールに添付ファイルを付けないよう設定することはできませんでしょうか。

[ ]
RE:48173 転送メールに添付ファイルを付けNo.48174
秀まるお2 さん 15/07/01 15:16
 
 「転送メール」コマンドで作成するウィンドウに、転送元メールの添付
ファイルを付けないようにしたいとうことですが、すみませんがそういう設定の
類は用意してないです。なので、やるとしたら、マクロを使っていただく必要が
あります。

 マクロの内容としては、以下のようになります。

--------------------------------------------------------------------
    loaddll "tkinfo.dll";
    #type = dllfunc("MailType");
    if( #type != 2 ) {
        //転送メールでなければマクロ終了
        endmacro;
    }
    while(1) {
        $attach = dllfuncstr("CurrentHeader", "X-Attach");
        if( $attach == "" ) {
            break;
        }
        #n = dllfunc("UndoAttach", $attach );
        if( #n == 0 ) {
            //取り消し失敗?
            message "添付ファイルの取り消し失敗";
            endmacro;
        }
    }
--------------------------------------------------------------------

 上記のような内容の、例えば「UndoForwardAttach.mac」のようなファイルを
秀丸エディタやメモ帳を使って作成します。

 そして、秀丸メールの「マクロ・マクロ登録...」の「自動起動」ページの
「送信用のエディタ起動時」の所に登録しておきます。

 そうすれば、「転送メール」でメールを作成した時に上記マクロが自動実行さ
れて、添付ファイルが取り消されます。

 そういう作戦でどうでしょうか。

 添付ファイルの取り消しをしたい場合としたくない場合の両方があるってこと
であれば、マクロを自動起動ページに登録するんじゃなくて、テンプレートの中
に、

   $(ExecMacro,"UndoForwardAttach.mac")$-

 のような命令を入れる作戦と、あと、フォルダ毎設定などでテンプレートを個
別指定するようなやり方が可能です。

 マクロの作成方法(保存場所をどこにするか等)については、「ヘルプ」
メニューの「秀丸メール・マクロヘルプ」の「秀丸メール内でのマクロ実行」と
かが参考になると思います。

[ ]
RE:48174 転送メールに添付ファイルを付けNo.48176
mtriver さん 15/07/01 17:54
 
mtriver です。

横から失礼します。

: --------------------------------------------------------------------
     〜〜 (cut)〜〜

:         #n = dllfunc("UndoAttach", $attach );
:         if( #n == 0 ) {
:             //取り消し失敗?
:             message "添付ファイルの取り消し失敗";
:             endmacro;
:         }
: --------------------------------------------------------------------

:    $(ExecMacro,"UndoForwardAttach.mac")$-
:
:  のような命令を入れる作戦と、あと、フォルダ毎設定などでテンプレートを個
: 別指定するようなやり方が可能です。

これにて使おうとしましたところ、マクロの上記部分で添付ファイルの取り消した
場合でも # n = 0 (失敗)が戻るようですが?

[ ]
RE:48176 転送メールに添付ファイルを付けNo.48178
秀まるお2 さん 15/07/01 19:08
 
 一応、こちらのテスト環境だと、UndoAttachに成功すれば返り値は0以外の値
が返ってきてて、普通は取り消し失敗の処理には入らないようではあります。

 添付ファイル3個までで試した限りはですが。

 添付ファイル1個でもエラーメッセージ出ますでしょうか。

 ユニコードのメールでもテストしてみましたが大丈夫そうです。

 何か再現のヒントがあったら教えてほしいですが、後でソースコードの見直し
もしてみます。

[ ]
RE:48178 転送メールに添付ファイルを付けNo.48179
Jerry_is さん 15/07/01 23:22
 
早速ありがとうございました。マクロで行なってみます。

[ ]
RE:48178 転送メールに添付ファイルを付けNo.48180
mtriver さん 15/07/02 05:22
 
mtriver です。

:  添付ファイル1個でもエラーメッセージ出ますでしょうか。

出ます。複数の時は最初の1個のみ取り消されます。

何か勘違いしていますかねー?

// [UndoForwardAttach.mac]

loaddll "tkinfo.dll";
#type = dllfunc("MailType");
if( #type != 2 ) {
    //転送メールでなければマクロ終了
    endmacro;
}
question "添付ファイルをそのまま付けますか?";
if( result == yes ) {
    endmacro;
}

while(1) {
    $attach = dllfuncstr("CurrentHeader", "X-Attach");
    if( $attach == "" ) {
        break;
    }
    #n = dllfunc("UndoAttach", $attach );
//  message "取り消し結果= " + str(#n);

    if( #n == 0 ) {
        //取り消し失敗?
        message "添付ファイルの取り消し失敗";
        endmacro;
    }
}

//t_forward_Std.bin

mtriver です。

---------------------- 転送元のメール ----------------------
From:     $(RootHeader, From)
To:       $(RootHeader, To)
Date:     $(RootHeader, Date)
Subject:  $(RootHeader, Subject)

$(ExecMacro,"UndoForwardAttach.mac")$-
$(SelectedRootText2)

$i

[ ]
RE:48180 転送メールに添付ファイルを付けNo.48182
秀まるお2 さん 15/07/02 10:20
 
 同じようにテンプレートからマクロ実行するようにして、マクロの中身もまっ
たく同じにしてみたんですが、やはりこちらではうまく動くようでした。

 設定とかの関係もちょっと考えがたいし、あとは秀丸メールのバージョンの違
いくらいしか思いつかないです。

 (V6.46β11の64bit版でテストしましたが)

 とりあえず、「全般的な設定・上級者向け・動作の記録」の「秀丸メールの動
作をdump.txtに記録する」をONにして、出てきたdump.txtの、「tkinfo 59」っ
て部分辺り教えてほしいです。

 tkinfo 59っていうのは、UndoAttachを呼び出した時に出てくる記録になりま
す。

-----------------------------------------------------------------------
09:41:50.963 (7751) tid=764 tkinfo 59
09:41:53.979 (26017) tid=764 UndoAttach()
09:41:53.979 (26111) tid=764 UndoAttach(): Deleting attach file, 送信添
付\150702_01\Print Screen.png
09:41:53.979 (25952) tid=764 UndoAttach_DeleteSub - DeleteFile e:\
hidemailhome\斉藤秀夫メイン\送信添付\150702_01\Print Screen.png
09:41:53.979 (9791) tid=764 SetAttachFolderRefCount: RemoveDirectory e:\
hidemailhome\斉藤秀夫メイン\送信添付\150702_01
09:41:53.979 (10280) tid=764 WM_SIZE cx,cy=776,635 lParam=0,0
09:41:54.010 (26250) tid=764 SetUpdated()
09:41:58.823 (10919) tid=764 EditorWnd:TKINFO 59 return 00000001
-----------------------------------------------------------------------

 上記の記録だと、たしかに添付ファイルが取り消されて、それ用のフォルダも
削除されて、返り値が1になってることが確認出来ます。何か違う値が返ってる
としたら、その理由についての記録が出てるかもしれないです。

 アカウント名や添付ファイル・ファイル名は伏せ字にしていただいてもいいで
す。

 すみませんがお願いします。

 もしかしてそれでも原因が分からない場合は、とりあえず原因不明のままで
マクロを手直しして使っていただいてもダメなことは無さそうな気もします。


[ ]
RE:48182 転送メールに添付ファイルを付けNo.48183
mtriver さん 15/07/02 11:49
 
mtriver です。

:  もしかしてそれでも原因が分からない場合は、とりあえず原因不明のままで
: マクロを手直しして使っていただいてもダメなことは無さそうな気もします。

そのようですね。


やはり戻り値は 0 ですね。

11:40:58.749 (10911) tid=1588 EditorWnd:TKINFO 59
11:40:58.749 (7751) tid=1588 tkinfo 59
11:40:58.749 (26017) tid=1588 UndoAttach()
11:40:58.749 (26190) tid=1588 UndoAttach(): Deleting attach file, 送信添付\1
50702_08
\KC460219.JPG
11:40:58.749 (25952) tid=1588 UndoAttach_DeleteSub - DeleteFile F:\Home\MyTk
Mail\XXXX
\送信添付\150702_08\KC460219.JPG
11:40:58.749 (1668) tid=1588 F:\Home\MyTkMail\XXXX\送信添付\150702_08\KC4602
20.JPG
11:40:58.749 (1462) tid=1588 will SHGetFileInfo
11:40:58.749 (1465) tid=1588 done
11:40:58.749 (26250) tid=1588 SetUpdated()
11:40:58.749 (10919) tid=1588 EditorWnd:TKINFO 59 return 00000000

使用環境は

秀丸エディタ Ver.8.54β10 (x64)
秀丸メール   Ver.6.46β11 (x64)
HTMLメールViewer Ver.2.30
HmJre.dll    Ver.4.11
Windows 7 Professional [Version 6.1.7601]

[ ]
RE:48183 転送メールに添付ファイルを付けNo.48184
秀まるお2 さん 15/07/02 13:52
 
 dump.txtありがとうございます。

 見た感じ、僕の所と微妙に違うようです。フォルダを削除してる記録が無くて、
代わりに

> 11:40:58.749 (1462) tid=1588 will SHGetFileInfo

 があります。この辺をヒントに原因を考えてみます。

[ ]
RE:48184 転送メールに添付ファイルを付けNo.48186
秀まるお2 さん 15/07/02 15:17
 
 dump.txtから理由が分かりました。簡略表示ヘッダに「X-Attach:」を追加し
てテストしたら再現しました。

 バグのようでした。

 修正させていただきます。

[ ]