Windowsバッチファイルからの送信No.44269
のーす さん 13/04/04 17:51
 
いつもお世話になっております。

Windowsのバッチファイルで、まず受信をして、それから
定型文を送信するようなことは可能でしょうか?

イメージとして

Hidemaru.Bat

<中身>
【受信用マクロ】.mac
【定型文送信マクロ】.mac

よろしくお願いいたします。




[ ]
RE:44269 Windowsバッチファイルからの送No.44271
秀まるお2 さん 13/04/04 18:08
 
 バッチファイルからメール送信を指示することは出来ます。

 メール送信をマクロで記述してるのでしたら、例えば

 "c:\program files\hidemarumail\turukame.exe" /x send.mac

 のように、「/x」オプションを付けてマクロ名を指定すれば、そのコマンドラ
インにてマクロが実行されます。

 マクロを使わずとも、例えば

   turukame.exe sendnow subject=XXX to=XXX body=XXX

 みたいな指定でメール送信させることも出来ます。詳しくはヘルプの「応用関
係 - 秀丸メール起動時のコマンドライン」を参照ください。

[ ]
RE:44271 Windowsバッチファイルからの送No.44274
のーす さん 13/04/05 17:28
 
ありがとうございます。

送信のほうは分かったのですが、
受信は起動時には指定できないのでしょうか?

よろしくお願いいたします。

[ ]
RE:44274 Windowsバッチファイルからの送No.44275
秀まるお2 さん 13/04/05 17:50
 
 コマンドラインで受信を指示することは、出来ません。

 /xオプションでマクロを実行する指示をした上で、マクロで、

    loaddll "tkinfo.dll";
    #n = dllfunc("StartTransmitAll");

 とか、それなりにやりたいことを実行する形になります。

 受信する関数はいろいろあるので、その辺は「ヘルプ」メニューの中の「秀丸
メール・マクロヘルプ」の中の「送受信関係 」辺りを参照ください。

[ ]
RE:44275 Windowsバッチファイルからの送No.44276
のーす さん 13/04/05 18:56
 
ありがとうございます。
下記の様にしてみました。


"D:\Program Files\HidemaruMail\TuruKame.exe" /x RCVSEND.mac

"D:\Program Files\HidemaruMail\TuruKame.exe" sendnow subject=TEST to=xxx@XXX.
jp body="テストです。"


【マクロ】

loaddll "TKInfo.dll";

if( dllfunc( "IsTransmitting" ) ) {
    message "送受信できません。";
    endmacro;
}

#n = dllfunc("StartReceive");

endmacro;

*---------------------------------------------------*
マクロを組んで実行したところ、秀丸メールが起動されて
開いたままになるため、次の送信コマンドに制御が移らないのですが
秀丸メールで何か設定する必要があるのでしょうか?

よろしくお願いいたします。

---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:44276 Windowsバッチファイルからの送No.44277
秀まるお2 さん 13/04/06 13:21
 
 ちょっとややこしい話が絡んでくるのでその辺説明させていただきます。

 turukame.exeをコマンドライン付きで起動する場合、その起動よりも前にすで
に秀丸メールが起動されているかどうかで、動作が変わります。

 すでに秀丸メールが起動してて画面上に存在してる状態で、例えば
「/x RECVSEND.mac」のコマンドラインでturukame.exeを起動すると、起動され
たturukame.exeは、すでに起動してる方のturukame.exeに対して「RECVSEND.
mac」を実行せよ」と指示し、指示が終わったらturukame.exeのプロセスは終了
します。

 秀丸メールがまだ起動してない状態で「/x RECVSEND.mac」のコマンドライン
付きturukame.exeが起動すると、起動されたturukame.exeは普通にウィンドウを
表示する処理をしてからマクロを実行し、そのまま居座り続けます。ユーザーさ
んがウィンドウを閉じる操作をしない限り、turukame.exeのプロセスも終了しま
せん。

 ちょっと図解説明でないと難しいですけども。

 今回の、のーすさんの所で起きてる現象は、後者の話になると思います。つま
り、RECVSEND.macを実行したあとturukame.exeのプロセスがそのまま残るために、
バッチファイルの後の処理も実行されず、そのまま止まってしまうのだと思いま
す。

 これの解決策としては、バッチファイルでturukame.exeを起動するのはstart
コマンドを使い、さらに、受信と送信の両方ともマクロでやってしまうしか無い
と思います。

 バッチファイルとしては、

start "tk" "D:\Program Files\HidemaruMail\TuruKame.exe" /x RCVSEND.mac

 のようにstartコマンドで秀丸メールを起動するようにしつつ、マクロの方で
は、例えば「送信して受信」なら、

loaddll "TKInfo.dll";
if( dllfunc( "IsTransmitting" ) ) {
    message "送受信できません。";
    endmacro;
}
#n = dllfunc("Receive");

#n = dllfunc("NewMail");
#n = dllfunc("SetHeader", "To", "xxx@xxx.jp");
#n = dllfunc("SetHeader", "Subject", "test");
gofiletop;
beginsel;
gofileend;
delete;
insert "test\n";
#n = dllfunc("SendNow");
if( #n != 0 ) {
    exit;
}
endmacro;

 のようにしたらいいかと思います。

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

[ ]