|
以前に、そのまま転送時に添付ファイルを圧縮する方法をお聞きしたのですが、表題
のようにパスワード付で圧縮するためには、「-p」のオプションをどの部分にどのよ
うにつけたらよいでしょうか?
以前に教えていただいたコードです
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 添付ファイル圧縮-7zip-Unsent-Separate.mac
// 2013.08.19
// 7-zipのダウンロード先: http://sevenzip.sourceforge.jp/
//
// このマクロを、「マクロ・マクロ登録・自動起動」の「受信が一段落した時」または
// 「送受信の開始直前」の所に登録しておけばいいかと思います。
// または既に何か登録されてる場合は、そのマクロからexecmacroを使ってこっちの
// マクロも起動するようにしたらいいかと思います。
// マクロの中の「$account = "....";」の部分はご自身のアカウントに書き換える
必要があります。
//
//
//
// $account = "ご自身のアカウント名"; //!!!書き換えが必要です!!!
loaddll "tkinfo.dll";
if( ! dllfunc("IsHidemaruMailMain") ) {
endmacro;
}
$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;
if( dllfunc("GetFolderMailCount", $account, "未送信") == 0 ) {
endmacro;
}
$PrevAccount = dllfuncstr("CurrentAccount");
$PrevFolder = dllfuncstr("CurrentFolder");
#n = dllfunc("SelectFolder", $account, "未送信");
if( dllfunc("IsThreadView") != 0 ) {
#n = dllfunc("SetThreadView", 0);
}
if( dllfunc("ViewArea") != 0 ) {
#n = dllfunc("SetViewArea", 0);
}
#MailIndex = 0;
#MailCount = dllfunc("MailCount");
while( #MailIndex < #MailCount ) {
#n = dllfunc("SetMailIndex", #MailIndex);
if( dllfuncstr("CurrentHeader", "Resent-From") != "" ) {
// 「そのまま転送」で転送するメールのみ添付ファイル圧縮する。
#attachcount = dllfunc("CountCurrentHeader", "X-Attach");
if( #attachcount != 0 ) {
#Update = 0;
#i = 0;
while(1) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
if( $attach == "" ) {
break;
}
$ext = dllfuncstr("ToLower", rightstr( $attach, 4 ));
if( $ext == ".lzh" || $ext == ".zip"
|| $ext == ".pdf"
|| $ext == ".gif"
|| $ext == ".jpg"
|| $ext == ".png"
|| $ext == ".bin"
|| $ext == ".dat" //OUTLOOK用にwinmail.dat追加→転送
先のGMailで読めるように!
|| rightstr($attach, 26) == "\\application_pgp-signature"
|| rightstr($attach, 26) == "\\application_pgp-encrypted"
|| rightstr($attach, 25) == "\\application_octet-stream"
) {
// 圧縮しても効果がないので圧縮しない
// PGP関係の添付ファイルも圧縮しない
} else {
$path = $home + $account + "\\" + $attach;
$pathLzh = $path + ".zip";
$cmd = "a \"" + $pathLzh + "\" \"" + $path + "\"";
runsync2 $7zip + " " + $cmd;
if( ! existfile( $pathLzh ) ) {
message "Zip圧縮に失敗したようです。スキップしま
す。";
} else {
if( #Update == 0 ) {
#Update = 1;
#n = dllfunc("BeginEditMail");
}
#n = dllfunc("Bypass_SetFileAttributes", $pathLz
h, 0x00000021); //ReadOnly属性に設定。
#n = dllfunc("Bypass_SetFileAttributes", $path,
0x00000020); // ReadOnlyを解除。
#n = dllfunc("Bypass_DeleteFile", $path);
if( #n == 0 ) {
message $path + " の削除に失敗しましたが処理
を続行します。";
}
#n = dllfunc("SetHeader2", "X-Attach", $attach +
".zip", #i);
}
}
#i = #i + 1;
}
if( #Update ) {
#n = dllfunc("SaveEditMail", 0);
}
}
}
#MailIndex = #MailIndex + 1;
}
#n = dllfunc("SelectFolder", $PrevAccount, $PrevFolder);
endmacro;
|
|