|
> ・メールの添付ファイルを所定のフォルダーに保存する。
今現在選択してるメールの添付ファイルすべてを、例えば"e:\temp"って
フォルダに保存する例としては、例えばこんなマクロになります。
loaddll "tkinfo.dll";
#count = dllfunc("CountCurrentHeader", "X-Attach");
#i = 0;
while( #i < #count ) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
$basename = midstr( $attach, strrstr($attach,"\\") + 1 );
$src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\"
+ $attach;
$dest = "e:\\temp\\" + $basename;
#n = dllfunc("Bypass_CopyFile", $src, $dest, 0);
if( #n == 0 ) {
message "コピーファイル失敗。\n" +
"コピー元: " + $src + "\n" +
"コピー先: " + $dest;
}
#i = #i + 1;
}
添付ファイルが1個だけって決まってるならもっと簡単になります。
> ・添付ファイルのチェック(exe形式のプログラムで処理)する。
例えば先ほどの例だと、$destって変数にコピー先のファイル名が入ってるの
で、
runsync2 "\"c:\\program files\\test program\\test.exe\" \"" + $dest + "\"";
みたいな文を入れたらいいんじゃないかと思います。
> ・定型文と結果レポート(テキスト形式)を本文に貼り付ける。
定型文は、マクロで書いてもいいしテンプレートで指定してもいいですが、結
果レポートは、例えば"e:\temp\result.txt"ってファイルにあるのだとしたら、
insertfile "e:\\temp\\result.txt";
みたいにinsetfile文でカーソル位置に取り込めばいいんじゃないかと思いま
す。
あるいは、もしもrunsync2で起動するプログラムの標準出力を取得してってこ
となら、runsync2の代わりにrunex文を使って標準出力をメールに取り込むやり
方になると思います。
> ・メールを送信者に返信する。
MakeReplyかMakeReplyCustomで返信メールが作成できます。返信メールを作成
して送信までするとしたら、SendLaterしてexitする作戦になるかと思います。
> 可能でしたら、おおよその手順やサンプルなどをご教示いただけないでしょうか。
runsync2はしてませんけど、例えばこんなサンプルとか…
loaddll "tkinfo.dll";
#count = dllfunc("CountCurrentHeader", "X-Attach");
#i = 0;
#attachcount = 0;
while( #i < #count ) {
$attach = dllfuncstr("CurrentHeader2", "X-Attach", #i);
$basename = midstr( $attach, strrstr($attach,"\\") + 1 );
$src = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\"
+ $attach;
$dest = "e:\\temp\\" + $basename;
#n = dllfunc("Bypass_CopyFile", $src, $dest, 0);
#i = #i + 1;
$attachlist[#attachcount] = $basename;
#attachcount = #attachcount + 1;
}
#n = dllfunc("MakeReply");
gofiletop;
beginsel;
gofileend;
insert " 返信メールの例です。\n\n";
#i = 0;
while( #i < #attachcount ) {
insert "添付ファイル: " + $attachlist[#i] + "\n";
#i = #i + 1;
}
insert "\n\n e:\\temp\\result.txtの貼り付け:\n";
insertfile "e:\\temp\\result.txt";
//宛先指定
#n = dllfunc("SetHeader", "To", "hideo@maruo.co.jp");
//あとで送信して終了
#n = dllfunc("SendLater");
if( #n != 0 ) {
exit;
}
endmacro;
マクロの動作が不明な点があれば、所々にmessage文を入れて変数の内容とか
をチェックして確認するのがお勧めです。例えば
$dest = "e:\\temp\\" + $basename;
message "$src = " + $src + "\n$dest = " + $dest;
とかいう感じで変数の中身を確認するとか。
|
|